Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Descreve maneiras mais fáceis e de linguagem natural de filtros de script para coleções de objetos.
Descrição longa
A sintaxe simplificada, introduzida no Windows PowerShell 3.0, permite que você crie alguns comandos de filtro sem usar blocos de script. A sintaxe simplificada se assemelha mais à linguagem natural e é útil principalmente com coleções de objetos que são canalizados para comandos Where-Object e ForEach-Object /ou seus aliases where correspondentes e foreach.
Você pode usar um método nos membros de uma coleção (mais comumente, uma matriz) 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 GetKeyAlgorithm método é chamado em cada objeto da coleção. Se o objeto recebido do pipeline não tiver um GetKeyAlgorithm método, o comando produzirá um erro.
Sintaxe simplificada
Na sintaxe simplificada, os operadores de comparação que funcionam em membros de objetos em uma coleção são implementados como parâmetros. Além disso, você pode invocar um método em objetos em uma coleção sem se referir à 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 retorna resultados sem se referir à 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 GetKeyAlgorithm do método é passado como um argumento para o parâmetro MemberName 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 GetFiles do método é passado para o parâmetro MemberName do ForEach-Object comando. O .* valor é passado para o parâmetro ArgumentList . O GetFiles() método é chamado com o parâmetro .* de padrão de pesquisa para cada objeto System.IO.DirectoryInfo retornado por Get-ChildItem.
Get-ChildItem /home -Directory | foreach GetFiles .*