Il semble que l'opération% démarre les blocs de script après le pipeline, bien que about_Script_Blocks indique que% n'est pas nécessaire.
Tout cela fonctionne très bien.
get-childitem | % { write-host $_.Name }
{ write-host 'hello' }
% { write-host 'hello' }
Mais lorsque nous ajoutons un bloc de script après le pipeline, nous devons d'abord avoir le%.
get-childitem | { write-host $_.Name }
powershell
syntax
Shaun Luttin
la source
la source
Réponses:
Lorsqu'il est utilisé dans le contexte d'une applet de commande (comme votre exemple), il s'agit d'un alias pour
ForEach-Object
:Lorsqu'il est utilisé dans le contexte d'une équation, il s'agit de l' opérateur de module :
et comme opérateur de module,
%
peut également être utilisé dans un opérateur d'affectation (%=
):la source
Un post PowerShell - Caractères spéciaux et jetons fournit une description de plusieurs symboles, notamment
%
la source
ForEach-Object
.ForEach
est également un alias pourForEach-Object
- sauf lorsqu'il est utilisé au début d'une instruction, où il s'agit d'un mot clé de contrôle de boucle (commewhile
).%
peut remplacer ce qui ne fonctionnera pas sans le ou le .Get-ChildItem |
ForEach-Object
{ write-host $_.Name }
%
ForEach-Object
la source