本帖最后由 we212320 于 2022-9-7 11:18 编辑
需求:启动某个cmd命令后(命令持续运行),检查它的输出,若包含successful,则提示启动成功。
尝试1:- start /B startup.cmd | findstr "successful" && echo started!
复制代码 ;但并没有输出started!,似乎findstr仍在读取命令的输出;
尝试2:- for /F %%t in ('start /B startup.cmd ') do (echo %%t | findstr "successfully" && echo started! && goto next )
- :next
复制代码 ,仍然没有输出started! 或者改为- for /F "usebackq" %%t in (`start /B startup.cmd`)
复制代码 推测: 问题可能出在复制代码 上, 它使得cmd命令在当前窗口中运行,而一直未结束,所以一直在进行findstr ; 第2种尝试中cmd命令并没有启动 ;
请大佬帮忙指点,如何解决,或者更换其它思路。我并不希望把cmd输出重定向到文件中,然后在通过findstr去查找文件,因为cmd输出到successful所在行需要是时间不确定(尽管大约15s内) |