Parece que a operação% inicia blocos de script após o pipeline, embora about_Script_Blocks indique que% não é necessário.
Tudo isso funciona muito bem.
get-childitem | % { write-host $_.Name }
{ write-host 'hello' }
% { write-host 'hello' }
Mas quando adicionamos um bloco de script após o pipeline, precisamos primeiro ter o%.
get-childitem | { write-host $_.Name }
powershell
syntax
Shaun Luttin
fonte
fonte
Respostas:
Quando usado no contexto de um cmdlet (como seu exemplo), é um alias para
ForEach-Object
:Quando usado no contexto de uma equação, é o operador módulo :
e como o operador de módulo,
%
também pode ser usado em um operador de atribuição (%=
):fonte
Uma postagem PowerShell - caracteres especiais e tokens fornece a descrição de vários símbolos, incluindo
%
fonte
ForEach-Object
.ForEach
também é um apelido paraForEach-Object
- exceto quando usado no início de uma instrução, onde é uma palavra-chave de controle de loop (comowhile
).%
pode substituir o que não funcionará sem o ou o .Get-ChildItem |
ForEach-Object
{ write-host $_.Name }
%
ForEach-Object
fonte