Question [V3-Foreach] Exemple d'usage de -RemainingScripts

Plus d'informations
il y a 11 ans 6 mois #12827 par Laurent Dardenne
Avec la V3, le cmdlet Foreach-Object propose le paramètre -RemainningScripts, la doc US actuelle ne propose pas d'exemple, en voici un :
[code:1]
\"Test un\", \"Test deux\" |
ForEach-Object -begin {Write-host \"BEGIN\"} `
-process {Write-host \"`tPremier SB : $_\" -fore darkcyan;$_},
{Write-host \"`tSecond SB: $_\" -fore yellow;$_},
{Write-host \"`tTroisième SB : $_\" -fore green;$_} -RemainingScripts {Write-host \"END : $input\" -fore green;$input} |
Foreach-Object {\"`t`treceive : $_\"}

# BEGIN
# Premier SB : Test un
# receive : Test un
# Second SB: Test un
# receive : Test un
# Troisième SB : Test un
# receive : Test un
# Premier SB : Test deux
# receive : Test deux
# Second SB: Test deux
# receive : Test deux
# Troisième SB : Test deux
# receive : Test deux
# END :

1..3|
ForEach-Object -begin {Write-host \"BEGIN\"} `
-process {Write-host \"`tPremier SB : $_\" -fore darkcyan;$_*2},
{Write-host \"`tSecond SB: $_\" -fore yellow;$_*4},
{Write-host \"`tTroisième SB : $_\" -fore green;$_-1} -RemainingScripts {Write-host \"END : $input\" -fore green;$input} |
Foreach-Object {\"`t`treceive : $_\"}
# BEGIN
# Premier SB : 1
# receive : 2
# Second SB: 1
# receive : 4
# Troisième SB : 1
# receive : 0
# Premier SB : 2
# receive : 4
# Second SB: 2
# receive : 8
# Troisième SB : 2
# receive : 1
# Premier SB : 3
# receive : 6
# Second SB: 3
# receive : 12
# Troisième SB : 3
# receive : 2
# END :
[/code:1]
On peut exécuter + blocs sur une itération et chacun émet un objet dans le pipe.
Un autre exemple :
[code:1]
\"Test un\", \"Test deux\" |
ForEach-Object -process {Write-host \"`tPremier SB : $_\" -fore darkcyan;$_},
{Write-host \"`tSecond SB: $_\" -fore yellow;$_},
{Write-host \"`tTroisième SB : $_\" -fore green;$_} -RemainingScripts {Write-host \"BEGIN\"},{Write-host \"END : $input\" -fore green;$input} |
Foreach-Object {\"`t`treceive : $_\"}

# Premier SB :
# receive :
# Second SB: Test un
# receive : Test un
# Troisième SB : Test un
# receive : Test un
# BEGIN
# Second SB: Test deux
# receive : Test deux
# Troisième SB : Test deux
# receive : Test deux
# BEGIN
# END :
[/code:1]
Le comportement est, comment dire, 'particulier' :blink:<br><br>Message édité par: Laurent Dardenne, à: 4/10/12 20:20

Tutoriels PowerShell

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

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