Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Breve descrição
Descreve maneiras mais fáceis e em linguagem natural para scriptar filtros para coleções de objetos.
Descrição longa
A sintaxe simplificada, introduzida no Windows PowerShell 3.0, permite-lhe criar alguns comandos de filtro sem usar blocos de script. A sintaxe simplificada mais se assemelha à linguagem natural e é principalmente útil com coleções de objetos que são canalizados para comandos Where-Object e ForEach-Object ou seus aliases correspondentes where e foreach.
Pode usar um método nos membros de uma coleção (mais comummente, um array) sem se referir à variável $_ automática dentro de um bloco de script.
Considere as duas invocações a seguir:
Sintaxe padrão
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -FilterScript { $_.FriendlyName -eq 'Verisign' }
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -FilterScript { $_.GetKeyAlgorithm() }
Observação
No segundo comando, o método GetKeyAlgorithm é chamado em cada objeto da coleção. Se o objeto recebido do pipeline não tiver um método GetKeyAlgorithm, o comando produzirá um erro.
Sintaxe simplificada
Sob a sintaxe simplificada, os operadores de comparação que trabalham em membros de objetos em uma coleção são implementados como parâmetros. Além disso, pode invocar um método em objetos numa coleção sem consultar a variável $_ automática dentro de um bloco de script. Compare as duas invocações a seguir com os exemplos de sintaxe padrão:
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -Property FriendlyName -EQ 'Verisign'
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -MemberName GetKeyAlgorithm
Como os parâmetros Property e MemberName são posicionais, você pode omiti-los do comando. Usando aliases, você pode simplificar ainda mais os comandos:
dir Cert:\LocalMachine\Root | where FriendlyName -EQ 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm
Embora ambas as sintaxes funcionem, a sintaxe simplificada devolve resultados sem referência à variável $_ automática dentro de um bloco de script. A sintaxe simplificada parece mais uma instrução de linguagem natural e pode ser mais fácil de entender.
O nome do método GetKeyAlgorithm é passado como um argumento para o MemberName parâmetro de ForEach-Object. Quando você invoca o método usando a sintaxe simplificada, o método é chamado para cada objeto no pipeline somente se esse objeto tiver esse método. Portanto, você obtém os mesmos resultados, mas sem erros.
No próximo exemplo, Description é passado para o parâmetro MemberName de ForEach-Object. O comando exibe a descrição de cada objeto System.Diagnostics.Process retornado por Get-Process.
Get-Process | foreach Description
Neste exemplo, o nome do método GetFiles é passado para o parâmetro MemberName do comando ForEach-Object. O valor
Get-ChildItem /home -Directory | foreach GetFiles .*
Consulte também
- sobre_Operadores_de_Comparação
- about_Foreach
- ParaCada-Objeto
- Onde-objeto