Question
Foreach { ...substring...} et problèmes ;-)
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 6 mois #7713
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
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.
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 6 mois #7719
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
Richard Lazaro écrit:
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
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
Je me permet une remarque étant en train d'étudier ce cas là.Bah, ya pas vraiment d'avantage et d'inconvénient
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
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.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 15 ans 6 mois #7721
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
Ca calme les malins n'est-ce pas ?
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.
- Jireck
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 0
il y a 15 ans 6 mois #7725
par Jireck
Réponse de Jireck sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
Arnaud écrit:
ca calme tout court
Ca calme les malins n'est-ce pas ?
ca calme tout court
Connexion ou Créer un compte pour participer à la conversation.
- DUMOULIN
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 15 ans 6 mois #7729
par DUMOULIN
Réponse de DUMOULIN sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
Clair !
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 15 ans 6 mois #7731
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Foreach { ...substring...} et problèmes ;-)
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Foreach { ...substring...} et problèmes ;-)