Powershell machte den Trick, wie in der Vierfachbuckys Antwort angegeben. Hier ist der Code, den ich verwendet habe. Die vorletzte Zeile ( ./xml2csv...
) ist der Job selbst. Der Rest des Skripts kann für ähnliche Aufgaben wiederverwendet werden.
# PARAMETERS $root = 'D:\Ratings' $folder = 'SP' # Import Invoke-Parallel .".\Invoke-Parallel.ps1" # Run in parallel Get-ChildItem ".\$folder-xml" -Filter *.xml | Invoke-Parallel -throttle 10 -runspaceTimeout 10 -ImportVariables ` -ScriptBlock { $file = $_.BaseName echo $file cd $root (./xml2csv $folder-xml\$file.xml $folder-csv\$file.csv fields-$folder.txt -Q) | out-null }
Einige Notizen:
- Die Invoke-Parallel-Funktion (auch bekannt als Cmdlet ) kann hier heruntergeladen werden .
- Ein Runspace ist das, was ich als "Instanz" bezeichnet hätte.
-runspaceTimeout
gibt die maximale Laufzeit für jede Instanz an. -throttle
Legt die maximale Anzahl gleichzeitig laufender Instanzen fest.