コマンドプロンプトで複数のコマンドを一度に実行する方法

toc目次

複数のコマンドを一度に実行する

コマンドプロンプトの実行単位は1行(1コマンド)ですが、&記号を使用するとコマンドを連続して実行することが可能です。

[コマンド1] & [コマンド2] & [コマンド3]
dir & cd .. & dir

上記の例では、現在のディレクトリの内容を表示し、次に親ディレクトリに移動し、最後に親ディレクトリの内容を表示します。

前方のコマンドが成功した場合にのみ実行

&&記号を使用すると、前方のコマンドが成功した場合にのみ、後方のコマンドを実行できます。

[コマンド1] && [コマンド2] && [コマンド3]

以下の例ではsample.txtが存在する場合はechoの処理が実施されます。

> more sample.txt && echo sample.txtを表示しました
サンプルの内容
sample.txtを表示しました

sample.txtが存在しない場合はechoの処理が実施されません。

> more sample.txt && echo sample.txtを表示しました
ファイル C:\sample.txt にアクセスできません

前方のコマンドが失敗した場合にのみ実行

||記号を使用すると、前方のコマンドが失敗した場合にのみ、後方のコマンドを実行できます。

[コマンド1] || [コマンド2] || [コマンド3]

以下の例ではsample.txtが存在する場合はechoの処理が実施されません。

> more sample.txt || echo ファイルが見つかりません
サンプルの内容

sample.txtが存在しない場合はechoの処理が実施されます。

> more sample.txt || echo ファイルが見つかりません
ファイル C:\sample.txt にアクセスできません
ファイルが見つかりません

コマンドのグループ化

()記号を使用してコマンドをグループ化することも可能です。

([コマンド1] || [コマンド2]) & [コマンド3]

上記では、コマンド1が成功した場合はコマンド2は実行されず、コマンド3が実行されます。
コマンド1が失敗した場合はコマンド2、コマンド3は実行されます。

以下の例ではsample.txtが存在する場合は2番目のコマンドは実行されません。

> (more sample.txt || echo ファイルが見つかりませんでした) & echo 処理終了
サンプルの内容
処理終了

sample.txtが存在しない場合はすべてのコマンドが実行されます。

> (more sample.txt || echo ファイルが見つかりませんでした) & echo 処理終了
ファイル C:\sample.txt にアクセスできません
ファイルが見つかりませんでした
処理終了

コマンドの成功、失敗の判定

コマンドの成功(正常終了)、失敗(異常終了)はコマンドプロンプトのエラーレベルで判定されます。

エラーレベルが0の場合、直前に実行されたコマンドが正常に終了したことを表し、0以外の場合はエラーで終了したことを表します。

エラーレベルはERRORLEVEL環境変数を参照することで確認できます。

> echo %ERRORLEVEL%
0

> more sample.txt
ファイル C:\sample.txt にアクセスできません

> echo %ERRORLEVEL%
1