自动执行需要用户输入的.cmd文件

时间:2018-10-25 09:04:57

标签: powershell tfs cmd automation

我们有一个.cmd文件,希望能够使用Powershell(来自TFS发行版)自动执行。

在Powershell中使用start-process的问题是执行被困在等待用户输入(Press any key to continue...)上。

有什么方法可以将变量传递给此调用或以其他方式调用它,而不再需要用户为此.cmd输入?

2 个答案:

答案 0 :(得分:3)

请勿使用Start-Process

"`n" | & 'C:\path\to\your.cmd'

答案 1 :(得分:0)

Powershell不会卡住,Start-Process正常工作-它正在运行该进程(假设cmd.exe)并等待该进程终止,然后继续。

cmd.exe提示您进行交互式用户输入(PAUSE),然后再继续操作,按照您的指示再次进行操作。

问题是您正在非交互式运行,并且没有提供继续操作所需的输入。


您可以更新cmd文件并添加可选参数,以便在无人值守运行时可以“跳过” PAUSE

if "%1"=="unattended" goto skippause
pause
:skippause

然后使用unattended运行它:

CMD /c c:\folder\file.cmd unattended