Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
KRÁTKÝ POPIS
Popisuje konstruktor jazyka foreach -Parallel v pracovním postupu Windows PowerShellu.
DLOUHÝ POPIS
Parametr Parallel klíčového foreach slova spouští příkazy v foreach bloku skriptu jednou pro každou položku v zadané kolekci.
Položky v kolekci, například disk v kolekci disků, se zpracovávají paralelně. Příkazy v bloku skriptu se spouštějí postupně u každé položky v kolekci.
foreach -Parallel je platný pouze v pracovním postupu Windows PowerShellu.
SYNTAXE
foreach -Parallel ($<item> in $<collection>) {
[<Activity1>]
[<Activity2>]
...
}
PODROBNÝ POPIS
Stejně jako příkaz foreach v prostředí Windows PowerShell musí být proměnná obsahující kolekci $<collection> definována před příkazem foreach -Parallel, ale proměnná představující aktuální položku $<item> je definována v příkazu foreach -Parallel.
Konstruktor foreach -Parallel se liší od klíčového foreach slova a parametru Parallel . Klíčové foreach slovo zpracovává položky v kolekci v posloupnosti. Parametr Parallel spouští příkazy v bloku skriptu paralelně. Blok paralelního foreach -Parallel skriptu můžete uzavřít do bloku skriptu.
Cílové počítače v pracovním postupu, například počítače určené běžným parametrem pracovního postupu PSComputerName , se vždy zpracovávají paralelně.
Pro tento účel nemusíte zadávat foreach -Parallel klíčové slovo.
PŘÍKLADY
Následující pracovní postup obsahuje foreach -Parallel příkaz, který zpracovává disky, které Get-Disk aktivita získá. Příkazy v foreach -Parallel bloku skriptu se spouštějí postupně, ale běží paralelně na discích. Disky se můžou zpracovávat souběžně a v libovolném pořadí.
workflow Test-Workflow {
$Disks = Get-Disk
# The disks are processed in parallel.
foreach -Parallel ($Disk in $Disks)
{
# The commands run sequentially on each disk.
$DiskPath = $Disk.Path
$Disk | Initialize-Disk
Set-Disk -Path $DiskPath
}
}
V této verzi pracovního postupu Get-ProcessGet-Service se příkazy spouští paralelně. Funkce pracovního postupu pokračuje ve foreach -Parallel smyčce, ve které se příkazy spouštějí postupně, ale běží paralelně na discích. Paralelní příkazy a smyčka foreach -Parallel se spouští souběžně.
workflow Test-Workflow {
#Run commands in parallel.
parallel
{
Get-Process
Get-Service
}
$Disks = Get-Disk
# The disks are processed in parallel.
foreach -Parallel ($Disk in $Disks)
{
# The commands run in parallel on each disk.
parallel
{
Initialize-Disk
inlinescript {.\Get-DiskInventory}
}
}
}