Powershell中外部程序的用户输入

时间:2014-06-18 12:49:36

标签: powershell powershell-v3.0

我正在写一个Powershell脚本,它调用这样的外部程序:

& $toolLocation $toolParameters

程序 - 这是一个控制台应用程序 - 运行正常,但最后等待用户按Enter键完成并退出。我想要实现的是脚本此时不会停止等待用户输入,而是自动继续。这可能吗?如果是,怎么样?

提前致谢。

2 个答案:

答案 0 :(得分:1)

无论程序是什么,您都可以使用wscript.shell来使用SendKeys方法。

我已经测试了以下内容:

$Wscript = New-Object -com wscript.shell
Start-Process -FilePath cmd.exe -Argumentlist "/c pause" ; Start-sleep -seconds 1; $wscript.SendKeys("{Enter}")

这已经催生了一个带有暂停提示的cmd.exe,然后我关闭了#39;与SendKeys。它当然取决于窗口行为 - SendKeys只将密钥发送到活动窗口,如果你调用的应用程序不活动,那么有几个技巧......

希望有所帮助

答案 1 :(得分:0)

一个没有依赖关系的更干净的解决方案是输出到主机的“Enter”键,并将其传递给applpication。在这种情况下,您可以执行以下控制台应用程序:

Write-Host "" | & $toolLocation $toolParameters