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

发布于 2024-09-04 02:23:07 字数 511 浏览 11 评论 0原文

我已成功地保存批处理文件直到进程结束。但是如何保存批处理文件直到进程开始?

我正在使用以下代码:

@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.......

当程序未运行时我得到的只是“信息:没有按照指定条件运行的任务”

提前感谢

S

I have successfully managed to hold a batch file until a process ends. But how do I hold a batch file until a process starts?

I am working using the following code:

@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.......

All I get when the program isn't running is "INFO: No tasks running with the specified criteria"

Thanks in advance

S

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡月浅 2024-09-11 02:23:07

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

@echo off

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

:1 for /f "usebackq tokens=1" %%M in (tasklist /nh /fi "imagename eq %process_1%" 2^>^&1) 如果不是 %%M== 则执行%ignore_result% 转到 1 :2 for /f "usebackq tokens=1" %%N in (tasklist /nh /fi "imagename eq %process_2%" 2^>^&1) 如果不是 %%N== 则执行%no_ignore% goto 2

echo 东西完成了......

You could also use a sleep function (look for the one with ping command).

Redirect the err (2) to the 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.......


You could also use a sleep function (look for the one with ping command).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文