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