コマンドプロンプトに関するテクニックのまとめです。コンテキストメニューから開く方法や、各種リダイレクトの方法などについて解説します。
コマンドプロンプトの起動方法
基本
[スタート] ボタン → [すべてのプログラム] → [アクセサリ] → [コマンドプロンプト]
を選択し、起動できます。ファイル名を指定して実行
[スタート] ボタンをクリックし、「検索の開始」 ボックスに cmd と入力することで実行できます。
Windowsロゴキー + R を押して [ファイル名を指定して実行]ダイアログを表示し、そこに cmd と入力して起動する方法が手軽でお勧めです。検索の開始ボックスから起動
Windows7 の場合、Windowsロゴキーを押した後に [検索の開始ボックス] に cmd と入力することで cmd.exe が見つかります。Enter で実行できます。また、Ctrl + Shift + Enter で選択することで管理者として実行することもできます。フォルダのコンテキストメニューから
Windows7 では、エクスプローラーでShiftキーを押しながらフォルダを右クリックしたときに表示されるコンテキストメニューからコマンドプロンプトを起動できます。
選択したフォルダがカレントディレクトリになります。
Shift キーを押していなくてもコンテキストメニューに表示されるようにする方法
レジストリの [HKEY_CLASSES_ROOT\Directory\shell\cmd] の Extended という名前の項目を削除、または、リネームする。
エクスプローラー背景のコンテキストメニューから
Windows7 では、エクスプローラーでファイルやフォルダを選択していない状態で、Shiftキーを押しながら右クリックしたときに表示されるコンテキストメニューからコマンドプロンプトを起動できます。
エクスプローラーで開いていたフォルダがカレントディレクトリになります。
Shift キーを押していなくてもコンテキストメニューに表示されるようにする方法
レジストリの [HKEY_CLASSES_ROOT\Directory\Background\shell\cmd] の Extended という名前の項目を削除、または、リネームする。
ファイルのコンテキストメニューから
レジストリを修正することで、ファイルのコンテキストメニューからも、そこをカレントディレクトリとして起動させることができます。
レジストリの [HKEY_CLASSES_ROOT\*\shell\cmd] の既定に を指定し [HKEY_CLASSES_ROOT\*\shell\cmd\command] の既定に を指定します。
次のファイルをダウンロードし、拡張子を reg に変更して実行することで、その設定を自動で行います。
Add cmd to file context menu同様にWindows XP などで フォルダのコンテキストメニューに追加する場合、
[HKEY_CLASSES_ROOT\Directory\shell\cmd] の既定に、[HKEY_CLASSES_ROOT\Directory\shell\cmd\command] の既定に を指定します。
次のファイルをダウンロードし、拡張子を reg に変更して実行することで、その設定を自動で行います。
Add cmd to folder context menu
簡易編集モード
コマンドプロンプトを簡易編集モードに設定しておくと、コピー・ペーストの操作が簡単になります。
コマンドプロンプトのタイトルバーを右クリックし、プロパティーを開きます。
次のように簡易編集モードにチェックします。
簡易編集モードでは、コピーしたい範囲を選択して右クリックすることでコピーできます。また、どこも選択していない状態で右クリックすることでペーストできます。
リダイレクト
標準出力のリダイレクト
次の様に書くと、out.txt というファイルに echo test というコマンドの出力がリダイレクトされます。echo test > out.txt
out.txt に追記する場合echo test >> out.txt
標準エラー出力のリダイレクト
echo test 2> out.txt
標準出力と標準エラー出力両方のリダイレクト
echo test > out.txt 2>&1
出力の破棄
Linux では /dev/null へリダイレクトすることにより、出力を破棄できます。
コマンドプロンプトでは、nul へリダイレクトすることで出力を破棄できます。
echo test > nul
コマンドの戻り値を確認する方法
直前に実行したコマンドの戻り値は ERRORLEVEL という環境変数に記録されています。
次の様に確認できます。
echo %ERRORLEVEL%
特別な記号のエスケープ方法
「>」 や 「|」 など、コマンドプロンプト上で特別な意味を持つ文字は 「^」 でエスケープできます。
echo ^|^>^^
「|>^」 と出力されます。
長い行を途中で改行し、複数行に渡って記述する方法
改行の直前に ^ を記述し、改行コードをエスケープすることで、複数行に渡って記述できます。
文字コードの設定方法
現在の文字コードを確認
chcp
UTF-8に変更する場合
chcp 65001
Shift_JISに戻す場合
chcp 932
便利なコマンド
- tasklist … 動いているプログラムごとに イメージ名, PID, セッション名, セッション番号, メモリ使用量, 実行ユーザー, CPU時間, ウィンドウタイトルなどを確認できます。