回答:
コマンドラインで実行しているかのように、バッチスクリプトを名前で呼び出すだけです。
だから、あなたはファイルがあるとbar.bat
言うecho This is bar.bat!
と、あなたは、ファイルからそれを呼び出したいfoo.bat
、あなたはこれをして書くことができますfoo.bat
:
if "%1"=="blah" bar
foo blah
コマンドラインから実行すると、次のように表示されます。
C:\>foo blah
C:\>if "blah" == "blah" bar
C:\>echo This is bar.bat!
This is bar.bat!
ただし、注意してください。別のバッチスクリプトからバッチスクリプトを呼び出すと、元のバッチスクリプトは実行を停止します。セカンダリバッチスクリプトを実行してから前のバッチスクリプトに戻る場合は、call
コマンドを使用する必要があります。例えば:
if "%1"=="blah" call bar
echo That's all for foo.bat!
これを実行foo blah
すると、次のように表示されます。
C:\>foo blah
C:\>if "blah" == "blah" call bar
C:\>echo This is bar.bat!
This is bar.bat!
C:\>echo That's all for foo.bat!
That's all for foo.bat!
CALLを使用する必要があります
CALL batch.bat
別のウィンドウでバッチファイルを開く場合は、を使用しますstart
。このように、基本的に2つのスクリプトを同時に実行できます。つまり、呼び出したスクリプトが完了するのを待つ必要はありません。以下のすべての例が機能します。
start batch.bat
start call batch.bat
start cmd /c batch.bat
スクリプトの終了を待つ場合は、を試してくださいstart /w call batch.bat
。ただし、batch.batはで終わる必要がありexit
ます。
dayStart.bat
start "startOfficialSoftwares" /min cmd /k call startOfficialSoftwares.bat
start "initCodingEnvironment" /min cmd /k call initCodingEnvironment.bat
start "updateProjectSource" /min cmd /k call updateProjectSource.bat
start "runCoffeeMachine" /min cmd /k call runCoffeeMachine.bat
release.bat
call updateDevelVersion.bat
call mergeDevelIntoMaster.bat
call publishProject.bat
ええと、なぜなのかはわかりませんが、呼び出しを行わなかった
call script.bat
ため、元のコンソールに戻りませんでした。
cmd /k script.bat
元のコンソールに戻りました。
call
すると、エラーが発生しても実行を継続します呼び出されたスクリプトで。