我想编写一个批处理脚本,并且我想检查脚本的一部分是否仍然在运行program1.exe。一旦program1.exe不再运行,我想做点什么。
我可以编写一个while循环来执行此操作,但它会不断检查并在我的CPU中耗尽我的一个核心的100%。
有没有有效的检查方法?也许是每秒检查一次这种情况的黑客?
由于
答案 0 :(得分:2)
试试这样:
@echo off
Set "MyProcess=Notepad.exe"
:start
tasklist | find /i "%MyProcess%">nul && goto:wait || start %MyProcess%
goto:start
:wait
ping localhost -n 3 >nul
goto:start
只需将Notepad.exe替换为您的程序名称
即可答案 1 :(得分:0)
您可以使用带有for /f
的{{1}}循环来检查使用tasklist
命令超时1秒的进程(您也可以使用ping
) 。以下示例来自我的一个脚本:
timeout /t 1 >nul
答案 2 :(得分:0)
有没有有效的检查方法?也许是每秒检查一次这种情况的黑客?
使用timeout /t 1
命令。如果您不想等待1秒钟,请按一个键继续......"要显示的消息,请使用timeout /t 1 > nul
。