我正在使用命令行文件(MyTestRepo.cmd(中的以下代码(有效(更新TortoiseGit存储库:
cd c:MyTortoiseGitRepo
git.exe pull --progress -v --no-rebase "origin"
在PowerShell中,我使用以下代码调用此文件:
$TestPull = Start-Job { Invoke-Item C:MyTestsMyTestRepo.cmd }
Wait-Job $TestPull
Receive-Job $TestPull
上面的代码确实有效,但它没有等待足够长的时间让 CMD 文件完成运行并退出 cmd.exe退出,然后再继续下一行代码。
有什么更好的方法可以等待cmd.exe过程完成才能继续?
Invoke-Item
不支持等待。您可以使用呼叫接线员&
。前任:
$TestPull = Start-Job { & "C:MyTestsMyTestRepo.cmd" }
或Start-Process -Wait
:
$TestPull = Start-Job { Start-Process -FilePath "C:MyTestsMyTestRepo.cmd" -Wait }
Start-Process
将在用户超出脚本时显示 cmd 窗口。这可以通过添加-
NoNewWindow'来抑制。