Salvo pressionamentos de Teclas

No início, havia um cmdlet…

na Maioria das vezes, quando você pensar em escrever algo no PowerShell, você irá encontrar normalmente dentro das primeiras linhas de uma Get-ChildItem, então você vai, inevitavelmente, um para cada ciclo.

Normalmente eu iria escrever isso como foreach($item in $items), mas em uma ocasião, o autocompletar veio na variável de matriz com um .ForEach opção, Eu não sabia o uso correto deste então, eu tentei o costume

Get-Help ForEach -ExamplesGet-Help ForEach -Online

Como este realmente não mostrar esta opção (para ser honesto, eu posso não ter ido para a direita a ajuda do PS), então eu pesquisei a mesma coisa, o que inicialmente me levou para uma página semelhante em ss64.com, but they provided a link to other ForEach options, one of which contained how to use the ForEach (Method)

How to use .ForEach

vamos ver se consigo explicar a ele no código:

$items.ForEach({# This exposes the $_ object, but I find that it doesn't know what each item is.# So I often find myself setting that to a new variable.$item = $_#I guess as you learn more and more you become versed in the ways of the object and can free type out the properties you need.})

Como você pode ver, esta forma de escrita de um ForEach ainda permite uma multiline instrução, e desde que você saiba quais propriedades são depois você nunca mais terá de definir o $_ objeto (mas eu sei que vai).

Beware of Dragons

There is something to be aware of in PowerShell version 3. Se o $array pode ser nulo, você precisa colocar em uma verificação para isso antes de fazer suas ações.

if($items -ne $null){...}

Se tiver usado PowerShell 2, poderá já estar ciente deste problema com arrays.

em PowerShell 3 e acima do laço foreach lida com objetos de matriz nula automaticamente, mas não será até que você use PowerShell 5 que o método ForEach lida com matrizes nulas.então … eu gosto?

Related Posts

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *