call

構文

バッチ プログラムを別のバッチ プログラムから呼び出します。

CALL [ドライブ:][パス]ファイル名 [バッチパラメーター]
バッチパラメーター バッチ プログラムで必要なコマンド ライン情報を指定します。

コマンド拡張機能を有効にすると、CALL は次のように変更されます:

CALL コマンドは、CALL のターゲットとしてラベルを受け付けるようになります。構文は、次のとおりです:

CALL :ラベル 引数

指定された引数で新しいバッチ ファイル コンテキストが作成され、指定されたラベルの次の文に制御が渡されます。バッチ スクリプト ファイルの最後に 2 回到達することによって、2 回 "終了" する必要があります。

1 回目に最後に到達したときには、制御は CALL 文の次の行に返されます。2 回目に、バッチ スクリプトが終了します。バッチ スクリプトから "戻る"ための GOTO :EOF 拡張機能の説明については、GOTO /? と入力してください。

また、バッチ スクリプトの引数参照 (%0、%1 など) の展開は、次のように変更されました:

%* バッチ スクリプト内では、すべての引数 (%1、%2、%3、%4、%5 など) を参照します。

バッチ パラメーター (%n) の置換は拡張されました。次のオプション構文を使うことができます:

%~1 すべての引用句 (") を削除して、%1 を展開します。
%~f1 %1 を完全修飾パス名に展開します。
%~d1 %1 をドライブ文字だけに展開します。
%~p1 %1 をパスだけに展開します。
%~n1 %1 をファイル名だけに展開します。
%~x1 %1 をファイル拡張子だけに展開します。
%~s1 展開されたパスは、短い名前だけを含みます。
%~a1 %1 をファイル属性に展開します。
%~t1 %1 をファイルの日付/時刻に展開します。
%~z1 %1 をファイルのサイズに展開します。
%~$PATH:1 PATH 環境変数に指定されているディレクトリを検索し、最初に見つかった完全修飾名に %1 を展開します。環境変数名が定義されていない場合、または検索してもファイルが見つからなかった場合は、この修飾子を指定すると空の文字列に展開されます。

修飾子を組み合わせて、複合結果を得ることもできます:

%~dp1 %1 をドライブ文字とパスだけに展開します。
%~nx1 %1 をファイル名と拡張子だけに展開します。
%~dp$PATH:1 PATH 環境変数に指定されているディレクトリを検索して %1 を探し、最初に見つかったファイルのドライブ文字とパスだけに展開します。
%~ftza1 %1 を DIR の出力行のように展開します。

上の例の %1 と PATH は、他の有効な値で置き換えることができます。%~ 構文は有効な引数の数によって区切られます。%~ 修飾子は %* と同時には使用できません。

"call /?"

利用例

たとえばsample.batを呼び出すには、

C:\>call sample.bat

とします。そのときsample.batに

@echo %1
@echo %2

のようにバッチパラメータを参照するように記述されていると、

C:\>call sample.bat param1 param2

のようにパラメータを渡すことができます。