[英]How to pause long enough that cmd.exe exits?
我正在命令行文件(MyTestRepo.cmd)中使用以下代碼(有效)更新TortoiseGit存儲庫:
cd c:\MyTortoiseGitRepo
git.exe pull --progress -v --no-rebase "origin"
在PowerShell中,我使用以下代碼調用此文件:
$TestPull = Start-Job { Invoke-Item C:\MyTests\MyTestRepo.cmd }
Wait-Job $TestPull
Receive-Job $TestPull
上面的代碼可以正常工作,但是等待足夠長的時間才能使CMD文件完成運行並退出cmd.exe,然后繼續進行下一行代碼。
有什么更好的方式讓您繼續前進之前必須等待cmd.exe進程完成?
Invoke-Item
不支持等待。 您可以使用呼叫運算符&
。 例如:
$TestPull = Start-Job { & "C:\MyTests\MyTestRepo.cmd" }
或Start-Process -Wait
:
$TestPull = Start-Job { Start-Process -FilePath "C:\MyTests\MyTestRepo.cmd" -Wait }
當用戶執行腳本時, Start-Process
將顯示cmd窗口。 這可以通過添加抑制-
NoNewWindow`。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.