Uložené, Údaje

na začátku, tam byl rutiny…

Většinou, když si myslíte, že o psaní něco v PowerShell, budete obvykle najít v rámci první linie Get-ChildItem, pak budete nevyhnutelně mít pro každou smyčku.

Normálně bych to napsat jako foreach($item in $items), ale při jedné příležitosti automatického dokončování přišel na proměnné pole s .ForEach možnost, Nevěděl jsem, že správné používání tohoto tak jsem se snažil obvyklé

Get-Help ForEach -ExamplesGet-Help ForEach -Online

Tak tohle jsem opravdu ukázat tuto možnost (abych byl upřímný, možná jsem se šel do správné pomoci z PS) takže jsem si vygooglila to samé, což zpočátku mě vzal na podobné stránky na ss64.com, ale poskytli odkaz na další možnosti ForEach, z nichž jedna obsahovala, jak používat ForEach (metoda)

jak používat .ForEach

podívejme se, jestli můžu to vysvětlit v kódu:

$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 můžete vidět, tato forma psaní ForEach stále umožňuje víceřádkové prohlášení, a tak dlouho, jak budete vědět, jaké vlastnosti jste po, jste nikdy muset nastavit $_ objekt (ale vím, že bude).

Dejte si pozor na draky

ve verzi PowerShell verze 3 je třeba si uvědomit něco. Pokud $array může být null, musíte to před provedením akcí zkontrolovat.

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

Pokud jste použili PowerShell 2, můžete si být vědomi tohoto problému s pole již.

v PowerShell 3 a vyšší smyčka foreach zpracovává objekty nulového pole automaticky, ale až při použití PowerShell 5 metoda ForEach zpracovává pole null.

takže … Líbí se mi to?

Related Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *