0

假设我有一个名为 parent.bat 的 bat 文件,它看起来像

@ECHO off
rem this is parent.bat file
:label
if exist child1.bat (
tasklist /v /fi "IMAGENAME eq cmd.exe"|find /I /c "hello1"
if %ERRORLEVEL% == "0" start child1.exe
)
if exist child2.bat (
tasklist /v /fi "IMAGENAME eq cmd.exe"|find /I /c "hello2"
if %ERRORLEVEL% == "0" start child2.exe
)
if exist child3.bat (
tasklist /v /fi "IMAGENAME eq cmd.exe"|find /I /c "hello3"
if %ERRORLEVEL% == "0" start child3.exe
)
timeout /t 120
goto label

我有 child1.bat 作为

  @ECHO off
  title hello1
  start www.google.com
  timeout /t -1

我有 child2.bat 作为

  @ECHO off
  title hello2
  start www.yahoo.com
  timeout /t -1

我有 child3.bat 作为

  @ECHO off
  title hello3
  start www.facebook.com
  timeout /t -1

如果 child.bat 文件存在并且它们没有运行,我的意图是运行 facebook、google、yahoo

但即使 child.bat 文件正在运行(它们处于暂停模式),也会发生 parent.bat 文件打开所有 child.bat 文件

甚至更多时候,当我更改 %ERRORLEVEL% == "0" 中的 qoutes 时,它不会启动 child1.bat 和 child2.bat

有时相反,有时 child2.bat 和 child3.bat 启动

4

1 回答 1

0
:label
for %%f in (1 2 3) do if exist "child%%f.bat" (
    tasklist /v /fi "IMAGENAME eq cmd.exe"|findstr /I "hello%%f" >nul 
    if errorlevel 1 start "child%%f.bat"
)
timeout /t 120
goto :label
于 2013-11-04T17:33:33.437 回答