如何暂停cmd.exe退出的时间足够长?

时间:2017-03-21 16:17:45

标签: windows powershell command-line cmd tortoisegit

我正在使用命令行文件(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进程完成?

1 个答案:

答案 0 :(得分:2)

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`来抑制。