goto
cmd.exe の処理をバッチ プログラム内のラベルの付いた行に移動します。 バッチ プログラム内で、ラベルで識別される行にコマンドの処理を移動します。 ラベルが見つかると、次の行で始まるコマンドから処理が続けられます。
構文
goto <label>
パラメーター
パラメーター | 説明 |
---|---|
<label> |
バッチ プログラムでラベルとして使われるテキスト文字列を指定します。 |
/? | コマンド プロンプトにヘルプを表示します。 |
解説
コマンド拡張機能が有効な場合 (既定値)、ターゲット ラベル :EOF を指定して goto コマンドを使うと、現在のバッチ スクリプト ファイルの末尾に制御を移し、ラベルを定義せずにバッチ スクリプト ファイルを終了します。 :EOF ラベルを指定してこのコマンドを使う場合は、ラベルの前にコロンを挿入する必要があります。 (例:
goto:EOF
)。label パラメーターにはスペースを使用できます。ただし、他の区切り記号 (セミコロン (;) や等号 (=) など) を含めることはできません。
指定する label 値は、バッチ プログラム内のラベルと一致する必要があります。 バッチ プログラム内のラベルは、先頭にコロン (:) を付ける必要があります。 コロンで始まる行はラベルとして扱われるので、その行のコマンドは無視されます。 バッチ プログラムに label パラメーターで指定したラベルが含まれていない場合は、バッチ プログラムが停止し、
Label not found
というメッセージが表示されます。goto を他のコマンドと併用することで、条件付き操作を実行できます。 goto を使った条件付き操作の詳細については、if コマンドに関するページを参照してください。
例
次のバッチ プログラムでは、ドライブ A のディスクをシステム ディスクとしてフォーマットしています。 この操作が成功した場合、goto コマンドによって :end ラベルに処理が移ります。
echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.