Question
aide sur une condition
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 9 ans 2 mois #23367
par flavien
aide sur une condition a été créé par flavien
Bonjour, je désire utiliser une condition pour attribuer une valeur a une variable en fonction d'une partie d'un mot trouvé dans une chaine de caractère de ma textbox.
[code:1]$a = $matextbox.text
switch -regex ($a)
{
\"[think]\" {$variable1= 'L'}
\"[pad]\" {$variable1 ='G'}
}[/code:1]
J'imagine que le code doit être dans ce style.
Merci d'avance.
Cordialement,
[code:1]$a = $matextbox.text
switch -regex ($a)
{
\"[think]\" {$variable1= 'L'}
\"[pad]\" {$variable1 ='G'}
}[/code:1]
J'imagine que le code doit être dans ce style.
Merci d'avance.
Cordialement,
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 9 ans 2 mois #23373
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:aide sur une condition
Salut,
flav631 écrit:
[code:1]
\"kniht\" -match \"[think]\"
#true
[/code:1]
Les crochets sont des métacaractères :
[code:1]
\"kniht\" -match \"think\"
#false
\"think\" -match \"think\"
#true
[/code:1]
Et ton switch doit gérer les cas où la chaine répond à plusieurs regex :
[code:1]
$a='ThinkPad'
$variable1=$null
switch -regex ($a)
{
\"think\" {$variable1= 'L'} #;continue}
\"pad\" {$variable1 ='G'} #;continue}
}
$variable1
#G
[/code:1]
flav631 écrit:
Presque :J'imagine que le code doit être dans ce style.
[code:1]
\"kniht\" -match \"[think]\"
#true
[/code:1]
Les crochets sont des métacaractères :
[code:1]
\"kniht\" -match \"think\"
#false
\"think\" -match \"think\"
#true
[/code:1]
Et ton switch doit gérer les cas où la chaine répond à plusieurs regex :
[code:1]
$a='ThinkPad'
$variable1=$null
switch -regex ($a)
{
\"think\" {$variable1= 'L'} #;continue}
\"pad\" {$variable1 ='G'} #;continue}
}
$variable1
#G
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- flavien
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 22
- Remerciements reçus 0
il y a 9 ans 2 mois #23375
par flavien
Réponse de flavien sur le sujet Re:aide sur une condition
Merci Laurent pour ton explication ça fonctionne.
Dernière petite question le [code:1]#;continue [/code:1]# est equivalent à[code:1]{continue}[/code:1] pour faire une boucle si j'enlève le #?
Dernière petite question le [code:1]#;continue [/code:1]# est equivalent à[code:1]{continue}[/code:1] pour faire une boucle si j'enlève le #?
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 9 ans 2 mois #23378
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:aide sur une condition
Pas de notion de boucle ici.
L'instruction continue est plus une rupture de séquence. Sans le continue toutes les regex sont exécutées les unes à la suite des autres, dans ton cas la dernière qui réussie renseigne la variable.
3 exemples :
[code:1]
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L'} #;continue}
\"pad\" {\"step 2\"; $variable1 ='G'} #;continue}
}
$variable1
}
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L' ;continue}
\"pad\" {\"step 2\"; $variable1 ='G' ;continue}
}
$variable1
}
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L' ;Break}
\"pad\" {\"step 2\"; $variable1 ='G' ;Break}
}
$variable1
}
[/code:1]
break et continue ont le même comportement ici et avec foreach également.
Il faut relire la doc pour être certains de ce comportement, je ne la connais pas par coeur
<br><br>Message édité par: Laurent Dardenne, à: 24/03/17 17:25
L'instruction continue est plus une rupture de séquence. Sans le continue toutes les regex sont exécutées les unes à la suite des autres, dans ton cas la dernière qui réussie renseigne la variable.
3 exemples :
[code:1]
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L'} #;continue}
\"pad\" {\"step 2\"; $variable1 ='G'} #;continue}
}
$variable1
}
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L' ;continue}
\"pad\" {\"step 2\"; $variable1 ='G' ;continue}
}
$variable1
}
'ThinkPad','ThinkPad2','Pad','z'|% {
$a=$_
$variable1=$null
switch -regex ($a)
{
\"think\" {\"step 1\"; $variable1= 'L' ;Break}
\"pad\" {\"step 2\"; $variable1 ='G' ;Break}
}
$variable1
}
[/code:1]
break et continue ont le même comportement ici et avec foreach également.
Il faut relire la doc pour être certains de ce comportement, je ne la connais pas par coeur
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.037 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- aide sur une condition