如何从过程中检测标准输入(批处理脚本)

本文关键字:批处理 脚本 标准输入 检测 过程中 | 更新日期: 2023-09-27 18:01:50

我正在构建一个处理批处理脚本的控件。它使用"重定向[…]]来获取错误和输出,然后将它们传递到一个TextBox中。

我希望能够允许用户提供输入,必要时。

要求如下:

  • 可以提供任何.bat文件。因此,在输出流中检查的硬连接机制(例如查找":"或"?")是不可能的。

  • 如果ShellExecute可以与获取错误和输出结合使用,那就好了

要明确:我的问题是知道在Process启动时需要输入的位置,提示用户输入,然后将其提供给流程。

如何从过程中检测标准输入(批处理脚本)

我认为这不可能。

我敢肯定,没有办法知道进程是否在等待输入。

你必须用另一种方式,也许例如在批处理文件中放一些echo来指示用户需要输入一些

如果这不是你要求的,我提前道歉。

在批处理脚本中,您可以检测是否使用timeout命令将标准输入重定向到磁盘文件,因此,例如,如果输入没有重定向,则提示用户;否则,只需从重定向文件中读取:

timeout 1 >nul 2>nul
if errorlevel 1 (
   rem Input redirected: just read from redirected file
   set /P variable=
) else (
   rem Input is console: prompt the user
   set /P "variable=Enter the variable value: "
)