如何防止 Windows Powershell 在執行命令時鎖定?我知道在 Linux 上您可以在命令末尾添加 & ,這樣您就可以繼續使用終端而無需關閉該進程。 Windows Powershell 有類似的東西嗎?
答案1
如何防止 Windows Powershell 在執行命令時鎖定?
使用Start-Job
cmdlet 在背景啟動作業。
&
這在 Powershell 中相當於在 Unix/Linux 中的命令末尾使用。
PowerShell 背景作業
建立 PowerShell 背景作業最簡單的方法是使用 cmdlet
Start-Job
。您可以使用 cmdlet 指定腳本區塊。例如,以下命令執行一個簡單的腳本區塊,作為後台作業取得 1 到 50 之間的數字:Start-Job {1..50}
您可以使用以下一行命令將參數傳遞給腳本區塊:
Start-Job {Param($log,$newest) Get-EventLog $log Newest $newest} -ArgumentList "system",25
或者您可以運行腳本:
Start-Job -FilePath C:\scripts\Send-UptimeMail.ps1 -ArgumentList (Get-Credential [email protected])
您可以在下面看到這三個命令的結果。我在 PowerShell 3.0 中執行了這些命令。不過,它們也可以在 PowerShell 2.0 中使用,儘管您不會看到 PSJobTypeName 欄位。
的輸出
Start-Job
是作業佇列物件。您可以使用-Job
cmdlet 來管理作業及其結果。您可以透過 ID 引用職位。在上圖中,請注意作業 ID 如何從 1 跳到 3 再到 5。
上面的連結詳細介紹了以下主題:
使用
Get-WMIObject
Cmdlet 建立後台作業使用
Invoke-Command
Cmdlet 建立後台作業管理後台作業
檢索作業結果
停止並等待作業
進一步閱讀
答案2
作為 Jobs 的替代方案,您可以使用運行空間:它們提供了更高的效能和更少的後台運行命令的開銷。
實施: