仅当进程IS正在运行时,如何继续批处理文件

时间:2010-06-03 15:23:13

标签: process batch-file for-loop tasklist

我已成功设法保存批处理文件,直到进程结束。但是如何在进程启动之前保存批处理文件?

我正在使用以下代码:

@echo off

set process_1="calc.exe"
set process_2="mmc.exe"
set ignore_result=INFO:
set no_ignore=mmc.exe

:1
for /f "usebackq" %%M in (`tasklist /nh /fi "imagename eq %process_1%"`) do if not %%M==%ignore_result% goto 1
:2
for /f "usebackq" %%N in (`tasklist /nh /fi "imagename eq %process_2%"`) do if not %%N==%no_ignore% goto 2

echo Stuff finished.......

程序未运行时我得到的是“INFO:没有以指定条件运行的任务”

提前致谢

取值

1 个答案:

答案 0 :(得分:1)

将err(2)重定向到stdout(1):

@echo off

set process_1="calc.exe" set process_2="mmc.exe" set ignore_result=INFO: set no_ignore=mmc.exe

:1 for /f "usebackq tokens=1" %%M in (tasklist /nh /fi "imagename eq %process_1%" 2^>^&1) do if not %%M==%ignore_result% goto 1 :2 for /f "usebackq tokens=1" %%N in (tasklist /nh /fi "imagename eq %process_2%" 2^>^&1) do if not %%N==%no_ignore% goto 2

echo Stuff finished.......

您还可以使用tasklist /nh /fi "imagename eq %process_1%" 2^>^&1函数(查找具有tasklist /nh /fi "imagename eq %process_2%" 2^>^&1命令的函数)。