Windows Powershell 鎖定

Windows Powershell 鎖定

如何防止 Windows Powershell 在執行命令時鎖定?我知道在 Linux 上您可以在命令末尾添加 & ,這樣您就可以繼續使用終端而無需關閉該進程。 Windows Powershell 有類似的東西嗎?

答案1

如何防止 Windows Powershell 在執行命令時鎖定?

使用Start-Jobcmdlet 在背景啟動作業。

&這在 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 欄位。

圖 1:在背景執行腳本區塊和腳本

的輸出Start-Job是作業佇列物件。您可以使用-Job cmdlet 來管理作業及其結果。您可以透過 ID 引用職位。在上圖中,請注意作業 ID 如何從 1 跳到 3 再到 5。

來源PowerShell 背景作業

上面的連結詳細介紹了以下主題:

  • 使用Get-WMIObjectCmdlet 建立後台作業

  • 使用Invoke-CommandCmdlet 建立後台作業

  • 管理後台作業

  • 檢索作業結果

  • 停止並等待作業


進一步閱讀

答案2

作為 Jobs 的替代方案,您可以使用運行空間:它們提供了更高的效能和更少的後台運行命令的開銷。

實施:

相關內容