我有两个进程正在运行(Windows7 prof 上的 foo.cmd 和 bar.cmd),它们都经常检查另一个进程是否仍在运行。由于每个进程都知道变量中其他进程的PID,所以%FPID%
我曾经这样检查其他进程是否还在运行
FOR /F "tokens=1,*" %%a in ('tasklist /FI "PID eq %FPID%" /NH ^| find /C "%FPID%"') do set COUNTP=%%a
如果%COUNTP%
现在大于 0,则其他进程仍在运行。
但是%COUNTP%
即使另一个进程实际上仍在运行(它仍然写入日志文件),它也时不时地等于 0。一秒钟后,它可以再次被发现。
- 哪些情况会导致无法通过 ID 找到正在运行的进程,就像我在上面的语句中所做的那样?
- 是否有更好/更好/更快的方法来检查某个 PID 的进程是否仍然处于活动状态并正在运行(在 Windows 上)?