Powershell Smyčky ForEach Prohlášení Tutoriál s Příklady
ForEach
je PowerShell prohlášení používali iterovat nebo smyčku přes daném seznamu, pole nebo kolekce objektů, řetězce, čísla, atd. ForEach je velmi populární smyčky mechanismus, kde můžeme použít různé případy, jako je procházet soubory, Čísla, Řetězce, Procesy, atd. Powershell verze 4.0 přináší některá vylepšení výkonu do smyčky ForEach
.
PowerShell ForEach Syntaxe
Foreach prohlášení má následující syntaxi, kde jsme se pomocí ITEM
COLLECTION
CODE-BLOCK
.
ForEach(ITEM in COLLECTION){ CODE BLOCK}
- položka je jediná hodnota nebo objekt, který se mění během každé iterace.
- kolekce je pole, kolekce, seznam hodnot nebo objektů jako 1,2,3,4.
- blok kódu je blok, kde běží skutečná operace, která obecně používá položku. Tento blok může být jeden nebo více řádků.
Foreach Přes Pole Řetězců
V jednoduchým způsobem, můžeme iterovat přes daném seznamu pole řetězců. Iterujeme přes pole s názvem „města“, které obsahuje více názvů měst. Každý název města vytiskneme příkazem „echo“, jak je uvedeno níže.
$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
můžeme vidět, že každé město je vytištěno jméno powershell terminálu v jedné linii.
Foreach prostřednictvím kolekce čísel
v předchozím příkladu jsme smyčku přes daný seznam řetězců. Můžeme také iterovat nebo procházet seznam čísel. Vytvoříme pole s názvem numbers
a iterujeme nad každou položkou v tomto číselném poli.
$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
$_ Použití
Při použití některých rutin přesměrovat výstup z rutiny Foreach můžeme použít „$“ pro každou položku nebo objekt. Pokud například použijeme rutinu“ Get-Process“, každá položka nebo proces bude v každé iteraci přiřazen $
. Můžeme zadat atribut jako Name $.Name
a vytisknout jako níže.
PS> Get-Process | ForEach-Object {$_.ProcessName}
We can also print multiple attributes in foreach by delimiting them with comma.
PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
Foreach Through Files
We can also loop through files by using Get-ChildItem
cmdlet. Get-ChildItem
zobrazí seznam souborů a složek jako dir
příkaz MSDOS. Tento výstup bude zapsán do konzoly pomocí příkazu Echo
.
foreach($file in Get-ChildItem) {Echo $file}
Foreach Pomocí Zvláštních Přípon Souborů, Jako je Bat
Můžeme konkrétně seznam zadaného souboru. Rozšíření bude obecně poskytovat typ souboru, jako je text, avi, mkv, mp3, doc atd. V tomto příkladu uvedeme pouze *.bat
nebo soubory Bat.
foreach($file in Get-ChildItem *.bat) {Echo $file}
můžeme vidět, že pouze soubory, jako je test.bat
autoexec.bat
budou uvedeny.
Foreach přes CSV soubor
CSV soubory se používají k ukládání textových dat strukturovaným způsobem. Můžeme snadno foreach v každém řádku souboru CSV jako níže. V tomto příkladu přečteme soubor CSV IP a poskytneme foreach
pro tisk konzoly Powershell.
$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}