Question [V3-Foreach] Exemple d'usage de -RemainingScripts
- Laurent Dardenne
- Auteur du sujet
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 11 ans 1 mois #12827
par Laurent Dardenne
Tutoriels PowerShell
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'
<br><br>Message édité par: Laurent Dardenne, à: 4/10/12 20:20
[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'

Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.078 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Contributions à la communauté
- [V3-Foreach] Exemple d'usage de -RemainingScripts