Windowsコマンド CMD

はじめに

本記事はサクシードが執筆したものです。Windowsコマンドの参考資料としてお読みください。(本記事の内容とお使いのPCのコマンドでは動作や機能など異なる場合があります。ご利用の際はご注意ください。)

CMD

Windows コマンド インタープリターの新しいインスタンスを開始します。

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]

[[/S] [/C | /K] 文字列]

/C
“文字列” に指定されたコマンドを実行した後、終了します。

/K
“文字列” に指定されたコマンドを実行しますが、終了しません。

/S
/C または /K の後の文字列の扱いを変更します (以下の説明を参照してください)。

/Q
エコーをオフにします。

/D
レジストリからの AutoRun コマンドの実行を無効にします (下記を参照してください)。

/A
内部コマンドの出力結果を ANSI でパイプまたはファイルに出力します。

/U
内部コマンドの出力結果を Unicode でパイプまたはファイルに出力します。

/T:fg
前景色および背景色を設定します (詳細は COLOR /? を参照してください)。

/E:ON
コマンド拡張機能を有効にします (以下の説明を参照してください)。

/E:OFF
コマンド拡張機能を無効にします (以下の説明を参照してください)。

/F:ON
ファイル名およびディレクトリ名補完文字を有効にします (以下の説明を参照してください)。

/F:OFF
ファイルおよびディレクトリ名補完文字を無効にします (以下の説明を参照してください)。

/V:ON
区切り文字として ! を使って遅延環境変数の展開を有効にします。たとえば、/V:ON とすると、!var! は、実行時に変数 var を展開します。var 構文は、FOR ループ中とは違い、入力時に変数を展開します。

/V:OFF
遅延環境展開を無効にします。

コマンド セパレーター ‘&&’ で区切られた複数のコマンドが引用符で囲まれている場合は、”文字列” として指定されます。また互換性の理由から /X と /E:ON、/Y と/E:OFF、および /R と /C は同じです。その他のスイッチは無視されます。

/C または /K が指定されている場合、スイッチの後の残りのコマンド ラインがコマンド ラインとして処理されます。次のルールが引用符 (“) の処理に使われます:

1. 次のすべての条件に一致する場合、コマンド ラインの引用符が有効になります:

– /S スイッチがない
– 引用符が 1 組ある
– 引用符の中に特殊文字がない
(特殊文字は &<>()@^| です)
– 引用符の中に 1 つ以上のスペースがある
– 引用符の中の文字列が、実行可能ファイルの名前である

2. 最初の文字が引用符であるにも関わらず上の条件に一致しない場合は、最初の引用符とコマンド ラインの最後の引用符が削除され、最後の引用符の後のテキストが有効になります。

コマンド ラインで /D が指定されなかった場合は、CMD.EXE の開始時に次の REG_SZまたは REG_EXPAND_SZ レジストリ変数が検索されます。次のレジストリ変数の両方またはどちらかが存在する場合、それらを最初に実行します。

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

および/または

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

既定では、コマンド拡張機能は有効です。拡張機能を無効にして CMD.EXE を起動するには、/E:OFF スイッチを使用します。コンピューターまたはユーザー ログオン セッションで起動される CMD.EXE コマンド すべてに対して拡張機能を有効または無効にするには、REGEDIT.EXE を使ってレジストリにある次の REG_DWORD 値を設定します。コンピューターに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ユーザー固有の設定は、コンピューターの設定より優先されます。コマンド ライン スイッチは、レジストリの設定より優先されます。

バッチ ファイルでは、SETLOCAL ENABLEEXTENSIONS または DISABLEEXTENSIONS 引数は /E:ON または /E:OFF スイッチよりも優先されます。詳細については SETLOCAL /? を 参照してください。

コマンド拡張機能には、次のコマンドに対する変更または追加が含まれています。

DEL または ERASE
COLOR
CD または CHDIR
MD または MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (外部コマンドの起動の変更を含みます)
ASSOC
FTYPE

詳細は、コマンド名の後に「/?」と入力すると表示されるヘルプを参照してください。レジストリにある次のREG_DWORD 値を設定します。コンピューターに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ユーザー固有の設定は、コンピューターの設定より優先されます。コマンド ライン スイッチは、レジストリの設定より優先されます。

バッチ ファイルでは、SETLOCAL ENABLEEXTENSIONS または DISABLEEXTENSIONS 引数は /E:ON または /E:OFF スイッチよりも優先されます。詳細については SETLOCAL /? を参照してください。

コマンド拡張機能には、次のコマンドに対する変更または追加が含まれています。

DEL または ERASE
COLOR
CD または CHDIR
MD または MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (外部コマンドの起動の変更を含みます)
ASSOC
FTYPE

詳細は、コマンド名の後に「/?」と入力すると表示されるヘルプを参照してください。

既定では、遅延環境変数の展開は有効ではありません。遅延環境変数の展開を有効または無効にして CMD.EXE を起動するには、/V:ON または /V:OFF スイッチを使います。コンピューターまたはログオン セッションで起動される CMD.EXE コマンドすべてに対して遅延の展開を有効または無効にするには、REGEDIT.EXE を使ってレジストリにある次の REG_DWORD 値を設定します。コンピューターに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ユーザー ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。ユーザー固有の設定は、コンピューターの設定より優先されます。コマンド ライン スイッチは、レジストリの設定より優先されます。

バッチ ファイルでは、SETLOCAL ENABLEEXTENSIONS または DISABLEEXTENSIONS引数は /V:ON または /V:OFF スイッチよりも優先されます。詳細については SETLOCAL /? を参照してください。

遅延環境変数の展開が有効になっている場合、感嘆符を使うと実行時に環境変数の値を置き換えることができます。

CMD.EXE の特定の起動のファイル名補完機能を有効または無効にするには、/F:ONまたは /F:OFF スイッチを使用します。コンピューターとユーザー ログオン セッションまたはそのいずれかで起動される CMD.EXE コマンドすべてに対して補完機能を有効または無効にするには、REGEDIT.EXE を使ってレジストリにある次の REG_DWORD 値を設定します。コンピューターに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

に特定の機能に使う 16 進の制御文字を設定します (例 0x4 は Ctrl-D、0x6 はCtrl-F)。ユーザー ログオン セッションに対しては、

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar

に特定の機能に使う 16 進の制御文字を指定します (例: 0x4 は Ctrl-D、0x6 は Ctrl-F)。ユーザー固有の設定は、コンピューターの設定より優先されます。コマンド ライン スイッチは、レジストリの設定より優先されます。

/F:ON スイッチで補完機能を有効にした場合、2 つの制御文字 (Ctrl-D はディレクトリ名補完機能、Ctrl-F はファイル名補完機能) が使用されます。レジストリで特定の補完文字を無効にするには、制御文字として有効でないスペース (0x20) の値を使用します。

2 つの制御文字のどちらかを入力すると、補完機能が起動されます。パスが存在しない場合、プログラムはカーソルの左側のパス文字列にワイルドカード文字を付加し、一致するパスの一覧を作成します。その後一致する最初のパスを表示します。パスが一致しない場合、音を鳴らします。同じ制御文字を押し続けると一致するパスの一覧を順に表示します。Shift キーを押しながら制御文字を押すと一覧を逆回り表示します。行を編集して制御文字をもう一度押すと、保存されていた一致したパスの一覧は破棄され、新しい一覧が作成されます。ファイル名補完機能とディレクトリ名補完機能を切り替えたときも同様です。2 つの制御文字の違いは、ディレクトリ補完文字がディレクトリ名だけを照合するのに対し、ファイル名補完文字はファイルとディレクトリ名の両方を照合する点です。ファイル補完機能が内部ディレクトリ コマンド (CD、MD または RD) に使用された場合、ディレクトリ補完機能と見なされます。

一致するパスの前後に引用符を付けると、補完機能コードでスペースまたは他の特別な文字を含むファイル名が使用できるようになります。また、行の前に戻って補完機能を起動した場合、補完機能が呼び出された時点でカーソルの右側にあったテキストは破棄されます。

引用符が必要な特別な文字は次のとおりです:
<スペース>
&()[]{}^=;!’+,`~

ページ上部へ戻る