我的click.bat
文件:
:main
@start /wait cmd.exe -/c ""C:\Users\MY_USER_NAME\Desktop\2.bat" "
goto :main
我的2.bat
文件:
@echo off
echo Hello World!
@pause
我正在点击Click.bat
,它们都在打开(这里没有问题)。
之后,我要关闭“ Hello World”!提示(2.bat
)。
并提示输入Click.bat
,问我^CTerminate batch job (Y/N)?
我想在此处自动回答(为N
)。
(当答案为N
时,2.bat
如我所愿再次打开)。
答案 0 :(得分:0)
我同意Mofi的观点,解决真正的问题总是比解决它好,但是有时候这是不可能的,或者您需要更快的解决方案。
与其被动等待,不如直到第二个过程完成,只需主动观察即可。如果它不再存在,请重新启动它。这样就没关系,如何第二个过程完成/退出/崩溃:
test1.bat
@echo off
title MyCommand
echo Hello World!
@pause
break>MyCommand.flag
test2.bat
start cmd /c
您不必start
,因为仅||
就已经开始了新的cmd进程。为进程指定一个唯一的标题,以便您可以检查它是否仍在运行。
find
的工作方式是“如果先前的命令(find
)失败了,则
tasklist
是必需的,因为Test2.bat
不会提供有用的错误级别。
注意:当第二个进程完成其任务时,您还需要一种方法来停止。
test1.bat
完成后将写入一个空文件。显然,当进程在崩溃之前崩溃(或被强制终止)时,将不会创建该文件。
index.js
只需在重新启动第二个进程之前检查文件是否存在。