有效的方法来检查程序是否仍在使用批处理脚本运行

时间:2014-08-29 20:10:20

标签: batch-file process interrupt

我想编写一个批处理脚本,并且我想检查脚本的一部分是否仍然在运行program1.exe。一旦program1.exe不再运行,我想做点什么。

我可以编写一个while循环来执行此操作,但它会不断检查并在我的CPU中耗尽我的一个核心的100%。

有没有有效的检查方法?也许是每秒检查一次这种情况的黑客?

由于

3 个答案:

答案 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

相关问题