Windowsコマンド虎の巻

コマンド基礎

Windowsコマンドを使う上での基礎知識です。

コマンドプロンプトの起動

コマンドプロンプトは以下の手順で起動できます。

スタートから起動する場合

【Windows7】  [スタート] ⇒ すべてのプログラム ⇒ アクセサリ ⇒「コマンド プロンプト」 【Windows10】  [スタート] ⇒ Windowsアクセサリ ⇒ Windowsシステムツール ⇒「コマンド プロンプト」

「プログラムとファイルの検索」から起動する場合

「cmd」で検索し、「コマンドプロンプト」を選択する。

コマンドプロンプトの実体は、C:¥Windows¥System32¥cmd.exe にあります。

コマンドの基礎構文

コマンドは基本的に以下の構文で構成されます。

(構文)
コマンド <オプション> <引数>
項目メモ
コマンド実行したいコマンドを先頭に指定します。
サブコマンドが存在するコマンドもあります。(net、scコマンドなど)
オプションオプションを指定するとコマンドに付加要素を指定できます。
オプションは、/を付けて指定します。
 (⇒コマンドによっては、-(ハイフン)の場合もあります。)
オプションの記号は大文字小文字は問いません。
オプションの指定は任意です。
引数コマンド毎に必要な引数を指定します。
※引数が必要ないコマンドや複数必要なコマンドもあります。

コマンドによっては上記構文に当てはまらないものもあります。

リダイレクト(>、>>)

リダイレクトはコマンドを実行した結果をファイルへ出力する仕組みです。
上書き出力する場合は「>」、追記出力する場合は「>>」を使用します。

例)dirの実行結果を「test.txt」ファイルに上書きする

C:¥>dir > test.txt

例)dirの実行結果を「test.txt」ファイルに追記する

C:¥>dir >> test.txt

どちらの場合も指定したファイルが存在しない場合は新規で作成されます。

コマンドの出力を別のコマンドに渡す(|)

コマンドの実行結果を画面ではなく、別のコマンドへ渡したい場合は「|」(パイプ)を使用します。

例)dirの結果をmoreコマンドへ渡す

C:¥>dir | more

例)dirの結果をクリップボードへコピーする

C:¥>dir | clip

複数のコマンドを続けて実行する(&)

複数のコマンドを続けて実行するには「&」を使用します。

例)C:¥dir01ディレクトリへ移動した後にdirコマンドを実行する

C:¥>cd C:¥dir01 & dir

「&」を使わず、2行に分けて記述しても結果は同じです。

記号の前にあるコマンドが失敗した場合のみ、後のコマンドを実行(||)

記号の前にあるコマンドが失敗した場合のみ、後のコマンドを実行するには「||」を使用します。

例)C:¥dir01へ移動が失敗した場合、echo を実行する

cd C:¥dir01 || echo 存在しません。

前のコマンドが成功した場合は、後ろのコマンドは実行されません。

記号の前にあるコマンドが成功した場合のみ、後のコマンドを実行(&&)

記号の前にあるコマンドが成功した場合のみ、後のコマンドを実行するには「&&」を使用します。

例)C:¥dir01へ移動が成功した場合、dirコマンドを実行する

C:¥>cd C:¥dir01 && dir

前のコマンドが失敗した場合は、後ろのコマンドは実行されません。

右側で指定したファイルの内容を、左側のコマンドに渡す(<)

右側で指定したファイルの内容を、左側のコマンドに渡すには「<」を使用します。

例)test.txtの中身を、moreコマンドへ渡す

C:¥>more < test.txt

ワイルドカード

ファイル名等を指定する時にワイルドカードを使うと、一定の条件に合致するファイルのまとまりを指定することができます。 例えば、拡張子が.txtのファイルのみとか、ファイル名が5文字以下のファイルのみといった指定が可能です。

ワイルドカードには以下の記号が使用できます。

【ワイルドカード】
記号意味
*0文字以上の任意の文字に一致
?任意の1文字に一致

ワイルドカードの使用例

「C:¥dir01¥」に以下のファイルがあるとします。

a.txt aa.txt aaa.txt aaaa.txt aa.cmd

 ⇒ 拡張子が「.txt」のファイルのみ抽出する

C:¥dir01>dir *.txt a.txt aa.txt aaa.txt aaaa.txt

aa.cmdは拡張子が異なるため該当しません。

 ⇒ ファイル名が3文字以下で拡張子が「.txt」のファイルのみ抽出する

C:¥dir01>dir ???.txt a.txt aa.txt aaa.txt

aaaa.txtはファイル名が4文字なので該当しません。

何もないことを表す(nul)

何もないことを表すには、nulを使用します。
何もないことを出力したり、出力結果を無いことにしたりしたい場合に使われます。
(※ nulは、Linuxでいう「/dev/null」と同じ意味合いです。)

空のファイル「test.txt」を作成する

type nul> test.txt

pauseコマンドのメッセージを表示しない

pause > nul

pauseコマンドは通常「続行するには何かキーを押してください」というメッセージが表示されます。

メッセージが表示されないだけで、pauseコマンドは実行されます。

実行結果を出力しない(>nul 、2>&1)

実行結果を出力させたくない場合はリダイレクト「>nul」を使用します。

「del test.txt」コマンドの実行結果を表示しない

del test.txt >nul

しかし、上記の場合は正常に実行された場合は実行結果が出力されませんが、
エラーが発生した時はエラーメッセージが表示されてしまいます。

エラーメッセージも表示させたくない場合はリダイレクト「>nul 2>&1」を使用します。

「del test.txt」コマンド実行結果をエラーの場合を含め出力しない

del test.txt >nul 2>&1

「2>」はエラー文言のリダイレクトの指定、「&1」は標準出力の指定を表します。

実行中コマンドの強制停止

実行中コマンドを強制停止するには、以下キーを押せば強制停止できます。

実行中コマンドを強制停止するコマンド

[Ctrl]キー + [c]キー

半角スペースを含むパスを指定する場合

フォルダ名やファイル名に半角スペースを含むファイルを指定する必要がある場合は、
パスを""(ダブルクォーテーション)で囲う必要があります。

ファイル「C:\Program Files\test.txt」を削除する

(NG) del C:\Program Files\test.txt (OK) del "C:\Program Files\test.txt"