Question Foreach { ...substring...} et problèmes ;-)

Plus d'informations
il y a 15 ans 6 mois #7713 par Richard Lazaro
Bah, ya pas vraiment d'avantage et d'inconvénient ... c'est totalement des utilisations différentes.

Si tu dois tester les valeurs que peut prendre \"une\" variable : utilise le switch.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #7719 par Laurent Dardenne
Richard Lazaro écrit:

Bah, ya pas vraiment d'avantage et d'inconvénient

Je me permet une remarque étant en train d'étudier ce cas là.
Si on ne considére que la grammaire du langage c'est vrai, comme il est dit dans le fichier about_switch.help.txt :
\"Une instruction switch est, dans le fond, une série d'instructions If.\"
On fait la même chose, mais pas de la même manière. L'instruction switch combine des tests avec des options trés puissantes.

Par contre si on compare les deux constructions dans un contexte dynamique, le switch à un avantage certains :
[code:1]
$h=new-object System.Collections.Specialized.OrderedDictionary
$h.'^(?<program>\S*)\s*pid: (?<pid>\d*)\s*(?<user>.*)$'={
$matches| %{
$id = $_.pid
$program = $_.program
$user = $_.user
}
continue
}
$h.'^\s*(?<handle>[\da-z]*): File \((?<attr>...)\)\s*(?<file>(\\\\)|([a-z]:«»).*)'={
$matches |
select @{n=\"Pid\";e={$id}},
@{n=\"Program\";e={$program}},
@{n=\"User\";e={$user}},
@{n=\"Handle\";e={$_.handle}},
@{n=\"attr\";e={$_.attr}},
@{n=\"Path\";e={$_.file}}
}
#Possibilité d'implémenter la clause Default
#$h.default={Write-host \"Ligne non gérée.`r`n$_\"}
$Program=\"C:\Tools\sysinternal\Handle\handle.exe\"
$code=@\"
switch -regex (&\"$Program\"«»)
{
$(
$h.GetEnumerator()|% { \"'$($_.Key)' {$($_.Value.ToString())}\" }
)
}
\"@
$o=iex $code
[/code:1]
On peut aussi ne pas coder de cette manière :silly:
PowerShell à l'instar d'un gemme à plusieurs facettes, je viens de découvrir celle-ci.

Voir le détail dans ce post .

[edit]
L'approche basée sur des if se trouve ici .

Message édité par: Laurent Dardenne, à: 2/09/10 12:48<br><br>Message édité par: Laurent Dardenne, à: 13/09/10 14:59

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #7721 par Arnaud Petitjean
Ca calme les malins n'est-ce pas ? :side:

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #7725 par Jireck
Arnaud écrit:

Ca calme les malins n'est-ce pas ? :side:


ca calme tout court

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #7729 par DUMOULIN

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 6 mois #7731 par Laurent Dardenne
Jireck, je me demande si, à l'aune du nom d'un célébre footballeur , je ne vais pas changer mon nom de compte en Sakalm TÜKÜR ;-)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena