Articles

Powershell ForEach lus Statement Tutorial with Examples

ForEach is een PowerShell statement dat gebruikt wordt om iterate of lus te gebruiken over de gegeven lijst, array of verzameling van de objecten, strings, getallen, enz. ForEach is een zeer populair loop mechanisme waar we verschillende gevallen kunnen gebruiken, zoals loop door bestanden, getallen, Strings, processen, enz. Powershell versie 4.0 brengt enkele prestatieverbeteringen aan deForEach lus.

PowerShell ForEach syntaxis

foreach statement heeft de volgende syntaxis waar we ITEMCOLLECTION en CODE-BLOCKgebruiken.

ForEach(ITEM in COLLECTION){ CODE BLOCK}
  • ITEM is een enkele waarde of object dat verandert tijdens elke iteratie.
  • collectie is een array, verzameling, lijst met waarden, of objecten zoals 1,2,3,4.
  • codeblok is het blok waar de echte operatie wordt uitgevoerd, die over het algemeen ITEM gebruikt. Dit blok kan enkele of meerdere regels zijn.

Foreach door een Array van Strings

op een eenvoudige manier kunnen we herhalen over de gegeven lijst van de string array. We itereren over de array met de naam “steden” die meerdere stadsnamen bevat. We zullen elke stadsnaam afdrukken met het commando “echo” zoals hieronder.

$cities = ("istanbul,ankara,canakkale")foreach ($city in $cities){ echo $city}
door middel van een reeks Strings

kunnen we zien dat elke stadsnaam wordt afgedrukt naar de PowerShell terminal in een enkele regel.

Foreach door een verzameling getallen

In het vorige voorbeeld hebben we een lus over een bepaalde lijst van strings. We kunnen ook een lijst met getallen herhalen of doorlopen. We zullen een array aanmaken met de naam numbers en herhalen over elk item in deze nummer array.

$numbers=(1,2,3,4,5)foreach ($number in $numbers){ echo $number}
Foreach door middel van een verzameling getallen

$_ Usage

wanneer sommige cmdlets worden gebruikt om de uitvoer van cmdlet om te leiden naar de foreach kunnen we “$” gebruiken voor elk item of object. Als we bijvoorbeeld” Get-Process “cmdlet gebruiken, wordt elk item of proces toegewezen aan de $ in elke iteratie. We kunnen het attribuut opgeven zoals Name $.Name en afdrukken zoals hieronder.

PS> Get-Process | ForEach-Object {$_.ProcessName}
$_ Usage

We can also print multiple attributes in foreach by delimiting them with comma.

PS> Get-Process | ForEach-Object {$_.ProcessName, $_.ID}
$_ Usage

Foreach Through Files

We can also loop through files by using Get-ChildItem cmdlet. Get-ChildItem toont bestanden en mappen zoals dir MSDOS Commando. Deze uitvoer zal naar de console geschreven worden met het Echo Commando.

foreach($file in Get-ChildItem) {Echo $file}
Foreach Through Files

foreach via specifieke bestandsextensies zoals Bat

kunnen we de opgegeven extensie specifiek weergeven. De extensie zal over het algemeen het bestandstype zoals tekst, avi, mkv, mp3, doc enz. In dit voorbeeld zullen we alleen *.bat of Bat-bestanden weergeven.

 foreach($file in Get-ChildItem *.bat) {Echo $file}
Foreach door specifieke bestandsextensies zoals Bat

We kunnen zien dat alleen bestanden zoals test.batenautoexec.batworden weergegeven.

Foreach Over CSV-bestand

CSV-bestanden worden gebruikt om tekstgegevens op een gestructureerde manier op te slaan. We kunnen gemakkelijk foreach in elke regel van een CSV-bestand zoals hieronder. In dit voorbeeld zullen we een IP CSV bestand lezen en aan de foreach leveren om Powershell console af te drukken.

$IPs = (Get-Content IP.csv).split(",")foreach ( $IP in $IPs){ echo $IP}

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *