如何从过程中检测标准输入(批处理脚本)
本文关键字:批处理 脚本 标准输入 检测 过程中 | 更新日期: 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: "
)