Tech TIPS:
これだけは覚えておきたいWindowsのコマンドプロンプトの使い方
GUIによる操作が当たり前のこの時代でも、Windows OSの管理にコマンドプロンプトはまだまだ欠かせない。コマンドプロンプトの基本的な使い方を解説。
対象OS:Windows Vista/Windows 7/Windows 8/Windows 8.1/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2
解説
GUIが主流のこの時代でも、「コマンドプロンプト」が活躍する場面は多い。例えば、システム管理などでは各種の設定ファイルの内容をチェックしたり、簡単な編集作業を行ったりする必要がある。その際、いちいちエクスプローラーやメモ帳などを使って編集するよりは、コマンドプロンプト上で操作した方が手っ取り早いことが多い。
またネットワーク関連のトラブルシューティングでは、コマンドプロンプト上でネットワークツールを使う場面が多いので、コマンドプロンプトを避けて通るわけにはいかない。
そこで本TIPSでは、コマンドプロンプトに慣れていないユーザーを対象に、その使い方について簡単にまとめておく。より詳細な使い方などについては、右上の連載記事(古い記事だが、現在でもほぼ通用する)やコマンドプロンプトのヘルプなどを参照していただきたい。
操作方法
●コマンドプロンプトの起動設定
「コマンドプロンプト」(ファイル名はcmd.exe)を起動するには、[スタート]メニューから[すべてのプログラム]−[アクセサリ]−[コマンドプロンプト]を選択する。Windows 8/Windows Server 2012以降なら、デスクトップの画面左下にあるスタートアイコンを右クリックして、クイックアクセスメニューから[コマンド プロンプト]を実行する。これ以外にも、[Windows]+[R]で[ファイル名を指定して実行]ダイアログを開き、「cmd」と入力してもよい。
コマンドプロンプトの起動(Windows 8/Windows Server 2012以降)
Windows 8/Windows Server 2012以降なら、デスクトップの画面左下にあるスタートアイコンを右クリックして表示されるクイックアクセスメニューから起動できる。
(1)これを右クリックする。Windows 8/Windows Server 2012の場合はマウスカーソルを画面左下に移動させると「スタート」アイコンが表示されるので、それを右クリックする。
(2)これを選択すると、コマンドプロンプトが通常起動する。
(3)これを選択すると、コマンドプロンプトが管理者権限で起動される。
いったんコマンドプロンプトが起動したら、タスクバーにアイコンを登録/ピン留めしておくと、以後は簡単に起動できるようになる。
タスクバーへのピン止め
起動しているコマンドプロンプトのアイコンをタスクバーに表示/ピン留めしておくと、以後は簡単に起動できるようになる。これはWindows 8.1での画面例。
(1)起動しているコマンドプロンプトのアイコンを右クリックする。
(2)タスクバーにピン留めする。Windows 7では[タスクバーにこのプログラムを表示する]と表示される。
●コマンドプロンプトを管理者権限で起動する
管理用コマンドを利用する場合、アクセス権の関係で、最初から管理者権限でコマンドプロンプトを起動しておかなければならないことがある。これにはいくつか方法がある。
一番基本的なのは、スタートメニューやタスクバー上の「コマンド プロンプト」アイコンを右クリックし、ポップアップメニューから[管理者として実行]を選択する方法である。
コマンドプロンプトを管理者権限で起動する
管理者権限が必要なコマンドを実行する場合は、最初からコマンドプロンプトを管理者権限で起動しておく。さもないと、コマンドが「エラー: このコマンドを実行するのに正しいアクセス許可がありません。〜」「〜ユーティリティを実行するためには管理者権限が必要です。」などのメッセージを表示して、実行できないことがある。
(1)タスクバー上にあるコマンドプロンプトのアイコンを右クリックする。[Ctrl]と[Shift]キーを押しながら、直接左クリックしてもよい。
(2)これをさらに右クリックする。
(3)これを選択して実行する。するとUACの確認ダイアログが表示されるので、[はい]を選択して実行する。
(4)コマンドプロンプトのコンソール設定などを変更するには、これをクリックする。後述の説明参照。
もしタスクバー上にコマンドプロンプトのアイコンを登録しているなら、[Ctrl]と[Shift]キーを押しながら、タスクバー上のコマンドプロンプトアイコンをクリックしてもよい。この方法は、タスクバー上にある(コマンドプロンプト以外の)プログラムを管理者権限で起動させる場合にも利用できる。
●コマンドプロンプトのコンソール設定の変更
コマンドプロンプトを起動すると、デフォルトでは80文字×25行しか表示されず、画面が狭くて使いづらいし、テキストの選択やコピーなども簡単ではないので、設定を変更しておくとよい。
このためには、コマンドプロンプトのシステムメニュー(コマンドプロンプトウィンドウの左上に表示されているアイコンをクリックすると表示されるメニュー)から[プロパティ]を選び([Alt]+[Space]+[P]キーの方が早いので、これも覚えておくとよい)、プロパティ画面を表示させる。
起動中のコマンドプロンプトではなく、今後起動するコマンドプロンプトのデフォルト設定を変更したい場合は、メニューやタスクバー上のコマンドプロンプトのアイコンを右クリックし、ポップアップメニューから[プロパティ]を選んでもよい。
コマンドプロンプトのプロパティ画面を開いたら、次の項目の設定を変更する。
■簡易編集モード/挿入モードの選択
[オプション]タブではコマンドの履歴や簡易編集モードなどを設定する。
それぞれの意味は次の通りである。
(1)バッファーサイズ
コマンド履歴の最大サイズの指定。一度入力したコマンド文字列は、このバッファーサイズの数だけ履歴として保存される。同じコマンドを繰り返して実行する場合に役に立つ。デフォルトでは最大50コマンド分保存されるが、最大で999まで拡大できる。通常は50でも十分だろう。
(2)バッファー数
コマンドプロンプトをネストして起動する場合(コマンドプロンプトから「cmd」コマンドをさらに呼び出す場合)、子プロセスのコマンドプロンプト中でも独立してコマンド履歴が保存される。だがこのバッファー数で指定したネストを超えると、コマンド履歴は保存されない。デフォルトでは4なので、5つ以上ネストさせたコマンドプロンプトでは、コマンド履歴は利用できなくなる。最大で999まで増加できるが、通常はデフォルト値でも構わないだろう。
(3)重複する古い履歴を破棄
コマンド履歴中に、同じコマンド文字列を重複して保存しないようにするオプション。同じコマンドを繰り返し実行してもコマンド履歴が増えず、履歴管理が容易になる。オンにしておくとよいだろう。
(4)簡易編集モード
オンにしておくと、コマンドプロンプトウィンドウ内のテキストをマウスのドラッグで操作できるようになるので便利である。クリップボードへコピーしたい範囲をマウスで選択し(領域の左上でマウスをクリックし、そのまま選択範囲の右下までドラッグして、マウスボタンを離す)、そこでさらに右クリックするか[Enter]キーを押すと、選択された範囲がクリップボードにコピーされる。「貼り付け」は(何も選択されていない状態で)マウスを右クリックするだけでよい。
(5)挿入モード
これはデフォルトの編集モードを「上書き」ではなく「挿入」にするためのオプションである。以前入力したコマンドの一部を変えて再実行するということはよくあるので、オンにしておかないととても不便である。
●レイアウトの設定
[レイアウト]タブではコマンドプロンプトのウィンドウサイズを変更する。コマンドプロンプトでは、通常のWindowsアプリケーションと違って、ユーザーが自由に画面サイズ(画面幅)を変えることはできない。もともと画面幅が固定のコンソール画面(DOS画面)をエミュレートしているので、使用中に自由に画面サイズが変更されることを想定していないためだ。また使いやすくするためにも、最初からなるべく画面を広くしておくのがよいだろう。
コマンドプロンプトのサイズ(桁数と行数)はデフォルトでは80桁×25行となっているが、これでは狭すぎるだろうから、もっと大きくしておくとよい。それぞれの意味は次の通りである。
(1)画面バッファーの幅
これは仮想的なコンソール画面の幅を表す。100桁以上にするのがよい。(3)の「ウィンドウの幅」を広げると自動的に連動するので、元のままでよい。
(2)画面バッファーの高さ
仮想的なコンソール画面の高さを表す。これを超えて出力されたテキストは切り捨てられ、上にスクロールしても見ることはできない。デフォルトでは300行だが、コマンド出力の結果が多いと入り切らないので、最大値の9999行まで増やしておくとよい。
(3)ウィンドウの幅
コマンドプロンプトウィンドウの物理的な幅(桁数)を表す。デフォルトでは80桁しかなくて狭いので、100桁とか120桁などに増やしておこう。この値を増加させると(1)の値も自動的に連動する。
(4)ウィンドウの高さ
コマンドプロンプトウィンドウの高さ(行数)を表す。30行とか40行など、なるべく画面いっぱいになるようにセットしておくとよい。
以上の設定変更が終了したら、[OK]をクリックして、設定を保存する。
●コマンドラインの編集
コマンドプロンプトでは、以前実行したプログラムを再度実行したり、少しパラメーターを変えて実行したりすることがよくある。こういう場合にはいくつか便利な方法があるので覚えておくとよい。
[↑]キーを押すとコマンド履歴を1つずつ順番に前へ戻ることができる([↓]キーで逆順)。また、例えば「net」まで入力してから[F8]キーを押すと、「net」で始まるコマンド履歴が順番に表示されるので、目的のコマンドラインが表示されるまで、繰り返し押せばよい。
また[F7]キーを押すと履歴の一覧が表示されるので、そこから選んで[Enter]キーを押すとすぐに再実行される。
コマンド履歴の編集
カーソルキーなどでコマンド履歴を呼び出して再実行できる。
(1)[F7]キーを押すとこの履歴ウィンドウが表示される。
(2)コマンド履歴の番号。
(3)コマンドの内容。「重複する古い履歴を破棄」のチェックボックスをオンにしておくと、重複するコマンド列は1つしか記録されなくなる。
(4)現在選択されているコマンド列。
(5)上下のカーソルキーで選択できる。
コマンドを再編集してから実行したい場合は、目的のコマンドを選択後、[←][→]キーでカーソル位置を動かして編集する。そして最後に[Enter]キーを押すと、それが実行される。
また[F9]キーを押すと「コマンド番号を入力:」というプロンプトが表示され、コマンド履歴の番号を直接指定して再実行できる。
●ファイル/フォルダー名の入力
コマンドを実行する場合には、そのパラメーターとしてファイル名やフォルダー名を指定する必要がある。だが古いMS-DOS時代の8.3形式のファイル名ならともかく、空白や記号、漢字などを含む長いファイル名をコマンドプロンプト上でいちいち手動で入力するのは非常に面倒である。こういう場合は、ファイル名やフォルダー名の「補完機能」を活用する。
補完機能とは、ファイル名の先頭の数文字を入力しただけで、残りの部分のファイル名が自動的に補われるという機能である。補完キー(デフォルトでは[Tab]キー)を押すと、カレントフォルダー内にある、該当するファイル名やフォルダー名が自動的に選択され、入力される。候補が複数ある場合は、目的のものが表示されるまで補完キーを繰り返し押せばよい。
何も入力せずに補完キーを押すと、全てのファイルやフォルダーが順番に表示される(ファイル名に空白が含まれる場合は、自動的に「"」で囲まれる)。
フォルダー名の場合は、最後に「\」を手動で入力して、さらに補完キーを押せば、今度はそのフォルダー内の候補が順番に表示される。このようにして、深いフォルダーにあるファイルでも簡単に指定できる。
ファイル名を指定するには、エクスプローラーによるドラッグ&ドロップという方法もある。エクスプローラーでファイルやフォルダーを選択、ドラッグして、それをコマンドプロンプト上へドロップすると、それらがフルパス名として貼り付けられる。エクスプローラーで[Shift]キーを押しながら右クリックしてパス名を取得する方法もあるが(右上の関連記事参照)、ドラッグ&ドロップする方が簡単である。
●コマンドプロンプトのヘルプ
コマンドプロンプトで利用可能なコマンドとその使い方などは、「help」コマンドで確認できる(一部、コマンドプロンプトの外部コマンドも表示される)。以下、いくつか主要なコマンドなどについて補足しておく。
●dirコマンド
dirコマンドは最も多く使われるコマンドであろう(右上の関連記事参照)。単に「dir」と入力すると、カレントフォルダー内にあるファイルやフォルダーの一覧が表示される。
dirで覚えておきたいオプションとしては、次のものが挙げられる。
- 1画面ごとに停止する「/p」
- 時間順にソートして表示する「/od」。新しいファイルが下の方に表示される。逆順にするには「/o-d」とする
- サイズ順にソートする「/os」(逆順は「/o-s」)
- 隠しファイルやシステムファイルを表示する「/ah」や「/as」
- 属性にかかわらず全てを表示させる「/a」
- フォルダー名だけを表示する「/ad」(ファイルだけなら「/a-d」)
- フォルダーを再帰的に全て検索して表示する「/s」
これらのオプションは複数組み合わせてもよいし、ワイルドカード文字を使って、例えば「dir /p *.txt」とすると、ファイル拡張子が「.txt」である全てのファイル名を1画面ごとに止めて表示できる。この場合、次の1画面を表示するには[Space]キーを、途中で中断するには[Ctrl]+[C]をそれぞれ押す。
特に有用なオプションは「/s」である。「dir /s」とすると、カレントフォルダーの下にあるフォルダーを全て順番に表示する。グラフィカルなツリーで表示させたければtreeコマンドを利用する。
また「dir /s *.cnf」のようにすると、*.cnfにマッチするファイルをカレントフォルダー以下から全て検索して表示するという、ファイル検索コマンドとして使用できる。さらに「/b」を付けると、ファイルのフルパス名のみが表示されるので、これをファイルにリダイレクトすれば該当するファイル名の一覧テキストができる(「dir /s *.cnf /b > file.txt」とする)。clipコマンドを使って(「dir /s *.cnf /b | clip」とする)、検索結果を直接クリップボードへコピーしてもよいだろう。
●cd/pushd/popdコマンド
カレントフォルダーを変更するにはcd(chdir)コマンドを利用する。ただしcdコマンドはデフォルトではカレントドライブを変更しないので、例えばカレントドライブが「c:\Windows」のときに「cd d:\MyData」を実行しても、カレントドライブはc:のままである。
そこでcdコマンドに「/d」オプションを付けると、カレントドライブの変更とカレントフォルダーの変更を同時に行える。例えば「cd /d d:\MyData」とすると、カレントドライブがd:、カレントフォルダーがd:\MyDataになる。
cdコマンドは、他のコマンドと違って、特別なパラメーター解釈が行われる。補完機能を使ってcdコマンドの引数を選択することもできるが、cdでは特別にワイルドカード文字列が指定できるので、例えば「cd win*」などとしてもよい。「win*」に複数マッチするフォルダーがある場合は、最初のフォルダーに移動する。
また空白文字が含まれる名前であっても引用符で囲む必要はなく、例えば「cd c:\program files」「cd c:\prog* file*」などとしてもよい。
さらにWindows Vista/Windows Server 2008以降のWindows OSのcdコマンドでは、パス区切り文字として「\」ではなく「/」も利用できるので、「cd /program fil*」「cd c:/windows/system32」のように記述してもよい。
カレントフォルダーを変更するコマンドには、pushd/popdもある。pushdコマンドを使うと、カレントフォルダーの場所をスタックにプッシュ(一時保存)してから、カレントフォルダーの場所が変更される。作業後、最後にpopdコマンドを実行すると、最初にプッシュしたカレントフォルダーに戻る。pushd/popdはネストして利用できる。
●type/moreコマンド
テキストファイルの内容を確認するには、typeコマンドかmoreコマンドを使用する。typeは指定されたファイルの内容を表示するコマンドだが、長いファイルだとあっという間にスクロールして見えなくなってしまうので、通常はmoreを使うとよい。複数のファイル名を指定すると、すべてのファイルが連続して表示される。
moreでは、指定されたファイル(ワイルドカードなどを使って複数指定可能)の内容を1ページずつ表示する。[Space]キーを押すたびに1画面ずつスクロールし、[Enter]キーだと1行ずつスクロールする。ファイルが複数ある場合は、[F]キーを押すと次のファイルへと進む。途中でやめるには[Q]キーか[Ctrl]+[C]を押す。
●ファイルの編集/プログラムの起動
ファイルの内容を編集するには、そのためのプログラムを起動する。例えばテキストファイルならメモ帳(notepad.exe)を起動し、ビットマップファイルならペイントプログラム(mspaint.exe)などを起動する。だが、通常はどのアプリケーションを起動するかを気にせずに、単にコマンドライン上で「text.txt」などと入力すればよい(ファイルの拡張子まで省略せずに入力すること)。すると、「.txt」のオープン用に割り当てられているプログラム(通常はメモ帳)が自動的に起動する。これはちょうどエクスプローラーでファイル名をダブルクリックした場合と同様である。直接特定のプログラムを使って起動したければ、例えば「wordpad test.txt」のようにする。
startコマンドを使って起動するパラメーターを指定すると、アプリケーションプログラム以外のものも実行/起動できる。例えば「start www.atmarkit.co.jp」とすると、[ファイル名を指定して実行]で「www.atmarkit.co.jp」と指定するのと同じく、Webブラウザーで@ITのWebサイトが表示される。startコマンドで指定できる特殊なWindowsフォルダーの例については、関連記事も参照していただきたい。
●その他のコマンド
コマンドプロンプトではさまざまなコマンドが利用できるが、それらを全て列挙するわけにはいかないので、いくつかまとめておく。詳細については各コマンドのヘルプなどを参照していただきたい。ほとんどのコマンドでは、例えば「copy /?」のように入力すると、その簡単な説明と書式が表示されるようになっている。
●フォルダーの作成
新しいフォルダーを作成するには、md(mkdir)を使用する。フォルダー名を複数列挙するとそれらが同時に全て作成されるし、階層フォルダー名を指定すると(例「md \aa\bb\cc\dd\ee」)、途中のサブフォルダーが存在しない場合はそれらが自動的に作成される。
●ファイル/フォルダーの削除
ファイルを削除するにはdel(erase)コマンドを利用する。フォルダーを削除する場合はrd(rmdir)コマンドを使用するが、rdコマンドではワイルドカードでは指定できないので、必要なら複数のフォルダー名を列挙すること。
フォルダーツリーを再帰的に全て削除するには、rdに/sオプションを併用する。
●ファイルのコピー
copyコマンドかxcopy、robocopyコマンドを使用する。copyはファイルのコピー、xcopy/robocopyはサブフォルダーを含むツリーのコピーに利用する。以下のTIPSも参照のこと。
- TIPS「xcopyでファイルをバックアップする」
- TIPS「robocopyでフォルダをバックアップ/同期させる」
●ファイルの名前変更/移動
ファイル/フォルダー名を変更するにはren(rename)コマンドを使用する。(コピーではなく)移動するには、moveコマンドを使う。
●ファイルの属性やセキュリティ設定
ファイルの属性を表示/設定するにはattribコマンド、ファイルのセキュリティ設定を表示/設定するにはcacls/icaclsコマンドなどを利用する。またユーザー名と権限の表示にはwhoamiコマンド、ファイルの所有権の取得にはtakeownコマンドが利用できる。
●文字列の検索
ファイルの中に特定の文字列が含まれているかどうかを調べるには、findコマンドを使用する。ただしこのコマンドでは固定的な文字列しか検索できないので、正規表現を使って検索したければfindstrという別のコマンドが利用できる。
●ソート/比較
テキストファイルの内容を、その文字コード順にソートするにはsortコマンドを使用する。テキストファイルの比較にはfcコマンドを利用し、バイナリファイルの比較にはfc /bコマンドかcompコマンドを利用する。
●ファイルに対する繰り返し処理
ファイルやフォルダーの一覧に対して、コマンドなどを繰り返し適用するには、forコマンドやforfilesコマンドを利用する。
●ディスクの管理
ボリューム全体のファイルシステムが正しいかどうかを検査するには、chkdskコマンドを使用する。ディスクのパーティションなどを管理するには、diskpartコマンドを利用する。他にも、ディスクをフォーマットするformatコマンド、デフラグするdefragコマンド、NTFSファイルを暗号化するcipherコマンド、NTFSの圧縮をcompactコマンドなどがある。
●プロセス管理
プロセスの一覧の表示にはtasklistコマンド、強制終了にはtaskkillコマンドが利用できる。システムを終了させたり再起動させるにはshutdownコマンドを利用する。一時的に他のユーザー権限でプログラムを実行するにはrunasコマンドが利用できる。
●シンボリックリンクやマウント/ジャンクションポイントの管理
ハードリンクやシンボリックリンク、ジャンクション、マウントポイントなどを管理するには、mklinkやmountvol、linkd、substコマンドなどを利用したり、ディスクの管理ツールでマウントしたりする。
●レジストリ操作
レジストリの操作にはregコマンドが利用できる。
●ネットワーク関係のコマンド
ネットワーク関係のコマンドも多数あるので、全て列挙することはできないが、簡単に述べると次のようなものがある。
コマンド | 説明 |
---|---|
ping | ネットワーク的に到達できるかを調べる ・TIPS「Windowsのpingコマンドでネットワークトラブルの原因を調査する」 |
ipconfig | アダプターごとのTCP/IPの設定状態などを調べる |
netstat | TCP/IPのプロトコルスタックの状態を調べる ・TIPS「netstatコマンドを使いこなす」 |
net | ネットワークファイル共有サービスなど管理コマンド ・TIPS「netコマンドの使い方」 |
nbtstat | NetBIOS over TCP/IPの状態を調べる ・TIPS「IPアドレスからホスト名を見つける方法」 ・TIPS「ホスト名からIPアドレスを見つける方法」 |
tracert | 各ルーターまでの到達状態などを調べる ・TIPS「tracertでネットワークの経路を調査する」 |
nslookup | DNSの状態を調べる ・TIPS「nslookupの基本的な使い方(イントラネット編)」 |
route | ルーティングテーブルの状態を調べる ・TIPS「ルーティングテーブルを操作する」 |
arp | ARPテーブルの状態を調べる ・TIPS「ARPコマンドで通信先を特定する」 |
ftp | ftpのクライアントプログラム ・TIPS「ftpでネットワークの速度を測定する」 |
netsh | ネットワーク関連コンポーネントの管理ツール ・TIPS「netshコマンドでTCP/IPのパラメータを設定する」 |
telnet | telnetのクライアントプログラム ・TIPS「Telnetクライアントの使い方」 |
netcfg | ネットワーク関連コンポーネントの構成ツール |
pathping | tracertとpingを組み合わせたようなネットワークの経路調査コマンド ・TIPS「pathpingでネットワークの経路を調査する」 |
hostname | ホスト名を表示する ・TIPS「コンピュータ名を素早く調査する」 |
msg | メッセージを送信する |
finger | fingerサービスを表示する |
getmac | MACアドレスを表示する |
mrinfo | IPマルチキャストルーターの構成情報を表示する |
netdom | ドメインコンピューターを管理する ・TIPS「Active DirectoryのFSMO役割を担当するサーバを調査する」 |
rpcping | RPCでの接続性をテストする |
ネットワーク関連の主なコマンド Windows OSで利用できる主なネットワーク関連のコマンドを列挙しておく。OSのバージョンやインストールされているネットワークコンポーネントによっては利用できないものやオプションもある。 |
■更新履歴
【2015/02/13】Windows Vista/Server 2008〜Windows 8.1/Server 2012 R2に対応しました。
【2002/06/22】初版公開(対象はWindows 2000/Windows XP)。
■この記事と関連性の高い別の記事
- ファイルのフルパス名を簡単に取得する方法(TIPS)
- ファイルの拡張子をまとめて変更する(コマンド・プロンプト編)(TIPS)
- Windows XPで変わったユーザー/コンピュータ/グループの選択方法(TIPS)
- dirコマンドでファイル名の一覧を取得する(TIPS)
- 任意のプログラムを素早く起動する(TIPS)
- volrestコマンドでシャドウ・コピーから以前のバージョンのファイルを取り出す(TIPS)
Copyright© 1999-2015 Digital Advantage Corp. All Rights Reserved.