web-dev-qa-db-ja.com

バッチスクリプト内からバッチスクリプトを実行するにはどうすればよいですか?

バッチスクリプト内から別のバッチスクリプトを呼び出すにはどうすればよいですか?

ifステートメントで実行する必要があります。

84
Kev

CALLを使用します

CALL nameOfOtherFile.bat

これにより、現在のバッチファイルの実行がブロック(一時停止)され、CALLedが完了するまで待機します。

ブロックしたくない場合は、代わりにSTARTを使用してください。

CmdプロンプトからCALL /?またはSTART /?を使用して、詳細を取得します。

199
yhw42

コマンドラインで実行しているように、名前でバッチスクリプトを呼び出すことができます。

したがって、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!
20
Dan Fabulich

CALLを使用する必要があります

CALL batch.bat
6
Younes TARCHOUN

使用できます

call script.bat

あるいは単に

script.bat
2

以下に例を示します。

A.batがあります:

@echo off
if exist b.bat goto RUNB
goto END
:RUNB
b.bat
:END

およびa.batから条件付きで呼び出されるb.bat:

@echo off 
echo "This is b.bat"
1
stanik

別のウィンドウでバッチファイルを開く場合は、startを使用します。この方法では、基本的に2つのスクリプトを同時に実行できます。つまり、呼び出したばかりのスクリプトが終了するのを待つ必要はありません。以下のすべての例が機能します。

start batch.bat
start call batch.bat
start cmd /c batch.bat

スクリプトが終了するのを待つ場合は、start /w call batch.batを試してください。ただし、batch.batはexitで終了する必要があります。

1