2017-03-19 37 views
1

重新啓動已完成後臺作業在PowerShell中5.1我已經創建了下面的命令在PowerShell中

Start-Job { while($true) { Get-Random; Start-Sleep 5 } } -Name Sleeper 

作業被創建精細後臺作業,並返回與Receive-Job的結果也是如此。我用Stop-Job cmdlet停止了它。

我想在同一個PS會話中重新啓動它。

我執行Get-Job cmdlet,我看到那裏的工作處於停止狀態。

如何重新啓動而不重新創建它?

我無法在about_Jobs中獲取此信息。

該腳本塊只是一個示例腳本。我更有興趣知道是否有辦法重新啓動現有的工作。

+0

嘗試'獲取幫助* JOB',看看你是否可以繼續使用'簡歷,Job' – user4317867

+0

似乎簡歷,工作是恢復暫停的作業。獲取錯誤「某些作業類型不支持恢復作業。有關支持恢復作業的更多信息,請參閱作業類型的幫助主題。」 –

+0

您想多次運行相同的作業來完成,更正嗎? –

回答

4

您無法重新運行完成的作業。有一兩件事你可以做的是從已完成的一個的命令開始新的工作:

$j1 = Start-Job -ScriptBlock { ... } 
... 
$j2 = Start-Job -ScriptBlock ([scriptblock]::Create($j1.Command)) 

如果你需要的東西,你可以將你可能要一個計劃任務重新運行或scheduled job

$trigger = New-JobTrigger -Daily -At '2:00 PM' 
$options = New-ScheduledJobOption -StartIfOnBattery -StartIfIdle 
Register-ScheduledJob -Name 'myjob' -ScriptBlock { ... } -Trigger $trigger -ScheduledJobOption $options 

並(重新)調用它,例如像這樣:

(Get-ScheduledJob -Name 'myjob').StartJob()