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