.bat文件,它将启动一个进程,获取其PID,监视其运行状态

时间:2017-08-14 03:59:36

标签: batch-file

我基本上试图在WIN10上编写一个脚本,允许我启动一个python脚本,监视它是否完成,然后继续下一步。这看起来应该可以工作,但它只是循环在2s计时器,即使我关闭记事本窗口。这是我在这里找到的2个脚本的组合,所以我可能会在我的方法上吃午餐。

       @echo off
set PROCESSNAME=notepad.exe

::First save current pids with the wanted process name
setlocal EnableExtensions EnableDelayedExpansion
set "RETPIDS="
set "OLDPIDS=p"
for /f "TOKENS=1" %%a in ('wmic PROCESS where "Name='%PROCESSNAME%'" get ProcessID ^| findstr [0-9]') do (set "OLDPIDS=!OLDPIDS!%%ap")

::Spawn new process(es)
start %PROCESSNAME%

::Check and find processes missing in the old pid list
for /f "TOKENS=1" %%a in ('wmic PROCESS where "Name='%PROCESSNAME%'" get ProcessID ^| findstr [0-9]') do (
if "!OLDPIDS:p%%ap=zz!"=="%OLDPIDS%" (set "RETPIDS=/PID %%a !RETPIDS!")
)

:check
set stillalive=no
for /f "tokens=2" %%b in ('tasklist') do (
set pid=%%b
if !pid! == %RETPIDS% (
set stillalive=yes
)
)
if %stillalive% == yes (
cls
 echo/Oh! He's still there, I'll wait.
 timeout /t 2 /nobreak
 goto check
) else (
 echo/He's not there anymore, start the party!!
)
pause>nul

如果有一种更简单的方法可以做到这一点很好,如果我能用记事本工作,它应该很容易适应我的需要。 提前谢谢。

0 个答案:

没有答案