Windows CMD で一行で複数のコマンドを実行する例を詳しく解説します
Windows CMDで一行で複数のコマンドを実行する方法
Windowsコマンドプロンプト(CMD)で一行で複数のコマンドを実行したい場合、コマンドの間に「&&」を使用します。
この演算子は、前のコマンドが成功した場合にのみ、次のコマンドを実行します。
例:
- ファイルの削除とフォルダの作成:
del *.txt && mkdir new_folder
このコマンドは、現在のディレクトリにあるすべての.txt
ファイルを削除し、成功した場合にのみ新しいフォルダ new_folder
を作成します。
- ディレクトリの変更とファイルのコピー:
cd Documents && copy report.txt C:\Backup
このコマンドは、Documents
ディレクトリに移動し、その後、report.txt
ファイルを C:\Backup
ディレクトリにコピーします。
他の演算子:
|
: 前のコマンドの出力結果を次のコマンドの入力としてパイプします。
注意:
- コマンドの間にスペースを入れてください。
- 複雑な条件やフロー制御が必要な場合は、バッチファイルを作成することを検討してください。
&&
演算子を使った例
del *.txt && mkdir new_folder
del *.txt
: 現在のディレクトリにあるすべての.txt
拡張子のファイルを削除します。&&
: 前のコマンド (ファイルの削除) が成功した場合にのみ、次のコマンドを実行します。mkdir new_folder
: 新しいフォルダnew_folder
を作成します。
このコマンドが実行されると、
- まず、すべての
.txt
ファイルが削除されます。 - ファイルの削除が正常に完了した場合、新しいフォルダ
new_folder
が作成されます。 - ファイルの削除中にエラーが発生した場合、フォルダの作成は行われません。
cd Documents && copy report.txt C:\Backup
cd Documents
:Documents
ディレクトリに移動します。copy report.txt C:\Backup
:report.txt
ファイルをC:\Backup
ディレクトリにコピーします。
- まず、
Documents
ディレクトリに移動します。 - ディレクトリの変更が正常に完了した場合、
report.txt
ファイルがコピーされます。 - ディレクトリの変更中にエラーが発生した場合、ファイルのコピーは行われません。
ping 8.8.8.8 -n 1 || echo "インターネットに接続されていません"
ping 8.8.8.8 -n 1
: Google の DNS サーバー (8.8.8.8) に 1 回 ping を送信します。echo "インターネットに接続されていません"
: インターネットに接続されていないことを示すメッセージを表示します。
- ping が成功すれば、何も表示されません。
- ping が失敗した場合 (インターネットに接続されていない場合)、
echo
コマンドが実行され、メッセージが表示されます。
dir | findstr "txt"
dir
: 現在のディレクトリの内容を表示します。|
:dir
コマンドの出力をfindstr
コマンドの入力として渡します。findstr "txt"
: 出力された内容から "txt" という文字列を含む行だけを表示します。
dir
コマンドで表示されたファイル一覧がfindstr
コマンドに入力されます。
これらの演算子を使うことで、複数のコマンドを一行で効率的に実行できます。バッチファイルを作成する際にも、これらの演算子は非常に便利です。
- コマンドの間にスペースを入れることを忘れないでください。
- より複雑な処理を行う場合は、バッチファイルを作成することを検討しましょう。
&
演算子: 前のコマンドの結果に関わらず、次のコマンドを実行します。^
(キャレット): 行末に^
を入れると、次の行に続くコマンドとして扱われます。
バッチファイルの作成
- 条件分岐や繰り返し処理:
- 例:
@echo off del *.txt mkdir new_folder copy report.txt C:\Backup
PowerShell の利用
- .NET Framework の機能を活用:
- より強力なスクリプト言語として、複雑な処理に適しています。
- パイプライン:
- 例:
Get-ChildItem *.txt | Remove-Item New-Item -ItemType directory -Name new_folder Copy-Item report.txt C:\Backup
コマンドプロンプトの機能
start
コマンド:- 新しいウィンドウでコマンドを実行できます。
- バックグラウンドで実行することも可能です。
call
コマンド:- 例:
start notepad.exe call another.bat
タスク スケジューラ
- スケジュールに基づいて自動実行:
- 特定の時間やイベント発生時に、複数のコマンドを自動で実行できます。
- 複雑なトリガー設定:
- さまざまな条件に基づいて実行を制御できます。
第三者ツール
- AutoHotkey:
- キーボードマクロやGUIを作成できます。
- PowerShell Studio:
- PowerShellスクリプトの作成を支援するツールです。
&&
,||
: 簡易的な複数コマンド実行- バッチファイル: 複雑な処理、自動化
- PowerShell: .NET Frameworkの機能を活用、パイプライン
start
,call
: 新しいウィンドウで実行、別のバッチファイル呼び出し- タスク スケジューラ: スケジュールに基づいた自動実行
- 第三者ツール: より高度な機能
どの方法を選ぶべきかは、実行したい処理の複雑さ、自動化の度合い、実行頻度などによって異なります。
選択のポイント
- シンプルで実行頻度が少ない場合:
&&
,||
- 複雑な処理、自動化する場合: バッチファイル、PowerShell
- スケジュール実行する場合: タスク スケジューラ
- GUI操作や高度なマクロ作成: AutoHotkey
- 環境変数: コマンドの実行時に変数を使用することで、柔軟な処理が可能になります。
- エラー処理:
errorlevel
変数を使って、コマンドの実行結果を判定し、エラー処理を行うことができます。
windows batch-file command-line