コマンドプロンプトやPowerShellで複数のコマンドを1行で連続実行する方法

コマンドプロンプトやPowerShellで複数のコマンドを1行で連続実行する方法

Windows環境でコマンドプロンプトやPowerShellを利用してコマンドを実行するときに、複数のコマンドを1行で続けて(ワンライナーで)実行したいときがあります。

そこでここでは、Windows 10のコマンドプロンプトやPowerShellで、複数のコマンドを1行で連続実行する方法を紹介します。

Linuxで複数のコマンドを1行で連続実行する方法
ここでは、Linux環境で複数のコマンドをコンパクトに1行で連続実行させる方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit21H1

コマンドプロンプトの場合

コマンドプロンプトで複数のコマンドを1行で連続実行する場合は、ケースにより記述方法が異なります。

cmd1に続けてcmd2を実行したいとき

単純に、複数のコマンドを連続実行したいときは「&」を使用します。

以下の場合、cmd1の実行結果にかかわらずcmd2を実行します。

C:\> cmd1 & cmd2

cmd1の標準出力をcmd2の標準入力に渡したいとき

cmd1の標準出力をcmd2の標準入力に渡したいときは「|」を使用します。

C:\> cmd1 | cmd2

cmd1の実行に成功した場合にのみ、cmd2を実行したいとき

cmd1の実行に成功した場合にのみ、cmd2を実行したいときは「&&」を使用します。

C:\> cmd1 && cmd2

cmd1の実行に失敗した場合にのみ、cmd2を実行したいとき

cmd1の実行に失敗した場合にのみ、cmd2を実行したいとき

C:\> cmd1 || cmd2

PowerShellの場合

PowerShellで複数のコマンドを1行で連続実行する場合も、ケースにより記述方法が異なります。

cmd1に続けてcmd2を実行したいとき

単純に、複数のコマンドを連続実行したいときは「;」を使用します。

以下の場合、cmd1の実行結果にかかわらずcmd2を実行します。

PS C:\> cmd1 ; cmd2

cmd1の標準出力をcmd2の標準入力に渡したいとき

cmd1の標準出力をcmd2の標準入力に渡したいときは「|」を使用します。

PS C:\> cmd1 | cmd2

あとがき

Windows 10に標準搭載の「Windows PowerShell」では「&&」や「||」といったパイプラインは利用できませんが、新しいクロスプラットフォーム向けの「PowerShell7」をインストールすれば利用できます。

PowerShell 7.0 の新機能 - PowerShell | Microsoft Docs