Requires PowerShell v2.
Job Cmdlets
start-job
get-job
receive-job
stop-job
start-job { #... }
#with parameters start-job {param($p1, $p2) $p1 $p2 } -argumentList 'foo', 123 #output foo 123
#execute N times start-job { 1..3 | %{ (get-date).toString('HH:mm:ss') sleep 1 } } #output 20:32:51 20:32:52 20:32:53
#execute N times with script block begin-process-end clause start-job { begin { 'begin script...' } process { 1..3 | %{(get-date).toString('HH:mm:ss'); sleep 1;} } end { 'end script...' } } #output begin script... 20:35:42 20:35:43 20:35:44 end script...
#infinite loop, stop job during sleep interval start-job {param($sleep) while ($true) { #... $now = get-date 'sleep {0}, {1} - {2}' -f $sleep, $now.toString('HH:mm:ss'), $now.addSeconds($sleep).toString('HH:mm:ss') sleep $sleep } } -argumentList 60 #output sleep 60, 20:41:06 - 20:42:06 sleep 60, 20:42:06 - 20:43:06
No comments:
Post a Comment