Saved Keystrokes

na początku był cmdlet…

większość razy, kiedy myślisz o napisaniu czegoś w PowerShell, Zwykle znajdziesz w pierwszych wierszach Get-ChildItem, wtedy nieuchronnie będziesz mieć dla każdej pętli.

normalnie zapisałbym to jako foreach($item in $items), ale pewnego razu autouzupełnianie pojawiło się na zmiennej tablicowej z opcją .ForEach, nie znałem poprawnego użycia tej opcji, więc próbowałem zwykłej

Get-Help ForEach -ExamplesGet-Help ForEach -Online

ponieważ ta opcja nie pokazywała tej opcji (szczerze mówiąc, mogłem nie skorzystać z odpowiedniej pomocy z PS), więc wygooglowałem to samo, co początkowo przeniosło mnie na podobną stronę na ss64.com, ale podali link do innych opcji ForEach, z których jedna zawierała sposób użycia metody ForEach ()

How to use .ForEach

zobaczmy, czy mogę to wyjaśnić w kodzie:

$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.})

Jak widać, ta forma pisania ForEach nadal pozwala na wielowierszową instrukcję i tak długo, jak wiesz, jakich właściwości szukasz, nigdy nie musisz ustawiać obiektu $ _ (ale wiem, że to zrobię).

uwaga na smoki

w PowerShell w wersji 3 jest coś, o czym należy pamiętać. Jeśli $array może być null, musisz sprawdzić to przed wykonaniem swoich działań.

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

jeśli używałeś PowerShell 2, możesz być świadomy tego problemu z tablicami.

w PowerShell 3 i powyżej pętla foreach automatycznie obsługuje obiekty tablicy null, ale dopiero po użyciu PowerShell 5 metoda ForEach obsługuje tablice null.

więc … podoba mi się?

Related Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *