簡體   English   中英

如何暫停足夠長的時間以使cmd.exe退出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM