次のような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 が開始されます