親バッチ・プログラムを停止せずに、あるバッチ・プログラムを別のバッチ・プログラムから呼び出します。 呼び出しコマンドは、呼び出しのターゲットとしてラベルを受け入れます。
注
スクリプトまたはバッチ ファイルの外部で使用されている場合、コマンド プロンプトで呼び出しは無効になります。
構文
call [drive:][path]<filename> [<batchparameters>]]
call [:<label> [<arguments>]]
パラメーター
パラメーター | 説明 |
---|---|
[<drive>:][<path>]<filename> |
呼び出すバッチ プログラムの場所と名前を指定します。
<filename> パラメーターは必須であり、.bat または.cmd拡張子が必要です。 |
<batchparameters> |
バッチ・プログラムに必要なすべてのコマンド・ライン情報を指定します。 |
:<label> |
バッチ プログラム コントロールをジャンプするラベルを指定します。 |
<arguments> |
バッチ プログラムの新しいインスタンスに渡すコマンド ライン情報を指定します ( :<label> から始まる)。 |
/? | コマンド プロンプトにヘルプを表示します。 |
バッチ パラメーター
バッチ スクリプト引数の参照 (%0、 %1、...) を次の表に示します。
バッチ スクリプトで %* 値を使用すると、すべての引数 ( たとえば、%1、 %2、 %3...) が参照されます。
バッチ パラメーター (%n) の置換として、次の省略可能な構文を使用できます。
Batch パラメーター | 説明 |
---|---|
%~1 | %1 を展開し、周囲の引用符を削除します。 |
~f1 を %する | %1 を完全修飾パスに展開します。 |
~d1 を %する | %1 をドライブ文字のみに展開します。 |
~p1 % | %1 をパスのみに展開します。 |
~n1 を %する | %1 をファイル名のみに展開します。 |
~x1 を %する | ファイル名拡張子のみに %1 を展開します。 |
~s1 を %する | %1 を、短い名前のみを含む完全修飾パスに展開します。 |
~a1 を %する | ファイル属性 に%1 を展開します。 |
~t1 を %する | %1 をファイルの日付と時刻に展開します。 |
~z1 % | ファイルのサイズに %1 を展開します。 |
%~$PATH:1 | PATH 環境変数に一覧表示されているディレクトリを検索し、見つかった最初のディレクトリの完全修飾名に %1 を展開します。 環境変数名が定義されていない場合、または検索でファイルが見つからない場合、この修飾子は空の文字列に展開されます。 |
次の表は、複合結果のバッチ パラメーターと修飾子を組み合わせる方法を示しています。
修飾子を使用したバッチ パラメーター | 説明 |
---|---|
~dp1 を %する | ドライブ文字とパスのみに %1 を展開します。 |
~nx1 を %する | ファイル名と拡張子のみに %1 を展開します。 |
~dp$PATH:1 を %する | PATH 環境変数に一覧表示されているディレクトリで %1を検索し、見つかった最初のディレクトリのドライブ文字とパスに展開します。 |
~ftza1 % | %1 を展開して、dir コマンドのような出力を表示します。 |
上記の例では、 %1 と PATH を他の有効な値に置き換えることができます。 %~構文は、有効な引数番号で終了します。 %~修飾子は、%*では使用できません。
注釈
バッチ パラメーターの使用:
バッチ パラメーターには、コマンド ライン オプション、ファイル名、%9 を介して %0 バッチ パラメーター、変数 ( %baud%など) など、バッチ プログラムに渡すことができる任意の情報を含めることができます。
<label>
パラメーターの使用:パラメーターで
<label>
を使用すると、新しいバッチ ファイル コンテキストを作成し、指定したラベルの後のステートメントに制御を渡します。 バッチ ファイルの末尾が初めて検出された時点 (つまり、ラベルにジャンプした後) は、 呼び出し ステートメントの後のステートメントに制御が戻ります。 2 回目にバッチ ファイルの終了が発生すると、バッチ スクリプトが終了します。パイプとリダイレクト シンボルの使用:
(|)
でパイプ<
またはリダイレクト シンボル (>
または) を使用しないでください。再帰呼び出しを行う
それ自体を呼び出すバッチ プログラムを作成できます。 ただし、終了条件を指定する必要があります。 それ以外の場合、親と子のバッチ プログラムは無限にループする可能性があります。
コマンド拡張機能の使用
コマンド拡張が有効になっている場合、 呼び出しは呼び出し のターゲットとして
<label>
を受け入れます。 正しい構文はcall :<label> <arguments>
。
例示
別のバッチ・プログラムから checknew.bat・プログラムを実行するには、親バッチ・プログラムに次のコマンドを入力します。
call checknew
親バッチ・プログラムが 2 つのバッチ・パラメーターを受け取り、それらのパラメーターを checknew.batに渡す場合は、親バッチ・プログラムに次のコマンドを入力します。
call checknew %1 %2