我使用
从powershell执行批处理文件Start-Process -Wait -FilePath $PathToBatchFile $SomeArguments
这将打开一个新的cmd窗口,在执行构建之前,必须通过按Y或N来回答Y / N问题。完成后,控制台窗口关闭。但是,当我添加-NoNewWindow
标志时,脚本开始但似乎无限期地等待。所以这就挂了
Start-Process -Wait -NoNewWindow -FilePath $PathToBatchFile $SomeArguments
我的猜测是它等待输入(特别是请求输入的消息未显示在ps终端中)。也许stdio必须附加到ps会话?也许我错过了一些非常明显的东西? 有什么建议?我知道这并不重要,但它确实困扰我。
编辑:
澄清:我不想以编程方式提供输入。相反,我希望能够以交互方式输入(在同一个PowerShell控制台中)所需的输入,以及查看批处理脚本的输出。 所以问题可能更正确地说明了如何在同一个PowerShell控制台中附加子cmd的std输入/输出。
编辑:
在Powershell控制台中工作,而不是在ISE中。 ISE的任何解决方案都将受到欢迎。首先需要检查自己。
答案 0 :(得分:1)
您可以使用RedirectStandardInput
参数提供对提示的响应。以下命令将'Y'发送到批处理文件。
"Y" | Out-File -FilePath input.txt
start-process -FilePath $PathToBatchFile -Wait -RedirectStandardInput "input.txt" -NoNewWindow