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:
- 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!
- 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
- Visa filer och kataloger som finns i C:
- PS C:\>foreach ($show in Get-ChildItem) {
- >> echo $show
- >>}
- Utdata: en lista på filer och kataloger
- 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
- 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
- Ä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
- 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