我有一個 powershell 腳本,它啟動了 x 個作業。如果我從 powershell 啟動它,行程將保持活動狀態,但如果從 cmd 啟動,則在腳本完成后每個行程都會停止。
使行程保持活動狀態的唯一方法是將 Sleep 放入腳本中。這是為什么?
這就是我從 cmd 啟動腳本的方式: Powershell.exe .\scripts\cpu_load.ps1 -UtilizeCorePercent 50
uj5u.com熱心網友回復:
PowerShell.exe 有兩種主要的操作模式。
- 一種終端模式,您可以在其中運行多個腳本或單個命令。
- PowerShell.exe 開始運行的執行模式,然后執行作為引數傳遞給它的腳本,繼續運行直到腳本退出,然后 PowerShell.exe 退出或關閉。
在終端模式下,您分配的變數、您啟動的作業等將保持活動狀態并可用,直到您退出 PowerShell.exe 終端。同樣,在執行模式下,一切都保持可用,直到腳本退出——即退出 PowerShell.exe。
CMD 終端允許您執行 exe 程式,例如 Notepad.exe 和 PowerShell.exe,但您必須了解 CMD.EXE 本身是一個可執行程式,通常通過放置在 Windows 桌面某處的快捷方式運行。
CMD 是它自己的 exe 程式這一事實意味著它對任何型別的其他 exe 程式沒有“意識”,因此,它不會在其他 exe 程式關閉后保留任何內容。
唯一的解決方案類似于 iRon 關于使用“ Wait-Job和/或Receive-Job ”的評論,在這種情況下,PowerShell.exe 以某種方式保持運行,直到作業完成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534699.html
標籤:电源外壳壳命令过程工作
