FOREACH loop

Foreach-loopen är också känd som en Foreach-sats i PowerShell. Den kommer att gå igenom objekten i en samling (Array) och köra ett kommando eller en uppsättning kommandon för var och en av dem.

Syntaxen är ganska enkel.

foreach ($item in $collection) {
# Åtgärder att utföra för varje $item
}

För varje element i arrayen utförs en viss åtgärd. Till exempel:

  1. Med en array:
    • PS C:\>$names = @(”Alice”, ”Bob”, ”Charlie”)
    • PS C:\>foreach ($name in $names) {
    • >> Write-Host ”Hello, $name!”
    • >>}
    • Utdata:
    • Hello, Alice!
    • Hello, Bob!
    • Hello, Charlie!
  2. En annan array:
    • PS C:\>$myArray = 1,2,3,4,5,6,7,8,9,10
    • PS C:\>foreach ($number in $myArray) {
    • >> echo $number
    • >>}
    • Utdata: 1 till 10 i en kolumn
    • En ny array skapas, $myArray, och initieras med heltals värdena 1 till 10
    • Första gången Foreach-satsen körs tilldelar den heltalsvärdet 1 till variabeln $number.
    • Sedan använder echo för att visa siffran 1.
    • Nästa gång visar 2 och så vidare
  3. Visa filer och kataloger som finns i C:
    • PS C:\>foreach ($show in Get-ChildItem) {
    • >> echo $show
    • >>}
    • Utdata: en lista på filer och kataloger
  4. Skapa multiplikationstabell ett till fem:
    • PS C:\> foreach ($i in 1..5) {
    • >> foreach ($j in 1..10) {
    • >> $result = $j * $i
    • >> Write-Output ”$j x $i = $result”
    • >> }
    • >> write-Output ””
    • >> }
    • Utdata: fem separata tabeller för 1, 2, 3, 4 och 5
    • 1 x 1 = 1
    • 2 x 1 = 2
    • ….
    • 9 x 1 = 9
    • 10 x 1 = 10
    • och så vidare
  5. Visar de fem första tjänster i systemet (i datorn)
    • PS C:\>foreach ($service in (Get-Service | Select-Object -First 5)) {
    • >>Write-Host Service name is: $service.name and status is $service.status
    • >>}
    • Utdata: kan variera dator till dator
    • Service name is: AarSvc_ee98190 and status is Stopped
    • Service name is: AdobeARMservice and status is Running
    • Service name is: AJRouter and status is Stopped
    • Service name is: ALG and status is Stopped
    • Service name is: AppIDSvc and status is Stopped
  6. Är talen 1 till 25 delbara med 10?
    • PS C:\>foreach ($Integer in 1..25) { if ( -not ($Integer % 10) ) {
    • >>”$Integer is like totally divisible by ten” }
    • }
    • Utdata:
    • 10 is like totally divisible by ten
    • 20 is like totally divisible by ten
  7. Multiplikation av negativa tal -5 till -1 med 2:
    • PS C:\>$negativeNumbers = -5..-1
    • PS C:\>foreach ($negNumber in $negativeNumbers) {$negNumber * 2}
    • Utdata:
    • -10
    • -8
    • -6
    • -4
    • -2