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