将批处理文件传递给PowerShell,该文件需要在同一控制台中输入用户

时间:2018-04-23 10:15:06

标签: powershell batch-file

我使用

从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的任何解决方案都将受到欢迎。首先需要检查自己。

1 个答案:

答案 0 :(得分:1)

您可以使用RedirectStandardInput参数提供对提示的响应。以下命令将'Y'发送到批处理文件。

"Y" | Out-File -FilePath input.txt 
start-process -FilePath $PathToBatchFile -Wait -RedirectStandardInput "input.txt" -NoNewWindow