我们有一个.cmd文件,希望能够使用Powershell(来自TFS发行版)自动执行。
在Powershell中使用start-process
的问题是执行被困在等待用户输入(Press any key to continue...
)上。
有什么方法可以将变量传递给此调用或以其他方式调用它,而不再需要用户为此.cmd输入?
答案 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