cmd.exeコマンド インタープリターの新しいインスタンスを開始します。 パラメーターを指定せずに使用すると、 cmd
オペレーティング システムのバージョンと著作権情報が表示されます。
注
より高度な機能を求めるユーザーは、強化されたスクリプトと自動化のために PowerShell を探索することをお勧めします。
構文
cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]
パラメーター
パラメーター | 説明 |
---|---|
/c |
<string> で指定されたコマンドを実行し、コマンド プロセッサを終了します。 |
/k |
<string> で指定されたコマンドを実行し、コマンド プロセッサを実行したままにします。 |
/s |
/c または/k と共に使用すると、" の前後の最初と最後の引用符 (<string> ) を削除する特殊な非解析規則がトリガーされますが、残りのコマンドは変更されません。 |
/q | エコーをオフにします。 |
/d | 自動実行コマンドの実行を無効にします。 |
/ある | コマンド出力を米国国立標準研究所 (ANSI) として書式設定します。 |
/u | コマンド出力を Unicode として書式設定します。 |
/t:{<b><f> | <f> } |
背景 (b) と前景色 (f) の色を設定します。 |
/e:on | コマンド拡張機能を有効にします。 |
/e:off | コマンド拡張機能を無効にします。 |
/f:on | ファイル名とディレクトリ名の入力候補を有効にします。 |
/f:off | ファイル名とディレクトリ名の入力候補を無効にします。 |
/v:on | 遅延環境変数の拡張を有効にします。 |
/v:off | 遅延環境変数の展開を無効にします。 |
<string> |
実行するコマンドを指定します。 |
/? | コマンド プロンプトにヘルプを表示します。 |
次の表に、 <b>
と <f>
の値として使用できる有効な 16 進数を示します。
価値 | 色 |
---|---|
0 | 黒い |
1 | 青い |
2 | 緑色 |
3 | アクア |
4 | 赤い |
5 | 紫 |
6 | 黄色 |
7 | 白い |
8 | 灰色 |
9 | 水色 |
ある | 浅緑 |
b | ライト アクア |
c | 纁 |
d | 薄い紫色 |
e | 薄い黄色 |
f | 明るい白 |
注釈
コマンド出力を別のコマンドの入力にリダイレクトするには、パイプ (
|
) 演算子を使用します。 例えば次が挙げられます。<command1> | <command2>
二重パイプ (
||
) 演算子は、前のコマンドが失敗した場合にのみ、次のコマンドを実行するために使用されます。 特定のシナリオでは、command2
は、command1
が失敗した場合にのみ実行されます。 例えば次が挙げられます。<command1> || <command2>
コマンド出力をファイルにリダイレクトするには、大角かっこ
>
文字を使用します。 例えば次が挙げられます。<command1> > <file1.txt>
複数のコマンドをグループ化または入れ子にするには、
&
を使用します。 例えば次が挙げられます。<command1> & <command2>
<string>
に複数のコマンドを使用するには、コマンド区切り記号&&
で区切ります。 例えば次が挙げられます。<command1> && <command2> && <command3>
注
&&
を使用すると、上記のコマンドが正常に完了した場合にのみ、次の&&
コマンドが実行されます。Cmd
は最初のコマンドを実行し、前のコマンドが成功した場合にのみ次のコマンドに進みます。 それ以外の場合、前のコマンドが失敗した場合、後続のコマンドは実行されません。アンパサンド
&
、パイプ|
、かっこ( )
は、引数として渡すときにエスケープ文字^
または引用符で囲む必要がある特殊文字です。コマンドが操作を正常に完了すると、0 の終了コードまたは終了コードが返されません。
ディレクトリ パス、ファイル、または指定する情報にスペースが含まれている場合は、テキストの周囲に二重引用符 (
" "
) を使用する必要があります ("Computer Name"
など)。 例えば次が挙げられます。mkdir Test && mkdir "Test 2" && move "Test 2" Test
次の特殊文字を囲む引用符を使用する必要があります: & <> [ ] |{ } ^ = ; ! ' + , ' ~ [空白]
/c
または/k
を指定した場合、cmd
プロセス、<string>
の残りの部分、および引用符は、次のすべての条件が満たされている場合にのみ保持されます。-
/s
も使用しません。 - 引用符のセットは 1 つだけ使用します。
- 引用符内に特殊文字を使用しないでください (例: & <> ( ) @ ^ |)。
- 引用符内に 1 つ以上の空白文字を使用します。
- 引用符内の
<string>
は実行可能ファイルの名前です。
前の条件が満たされていない場合、
<string>
は最初の文字を調べて、それが開始引用符であるかどうかを確認することによって処理されます。 最初の文字が開始引用符の場合は、終了引用符と共に削除されます。 終了引用符の後に続くテキストはすべて保持されます。-
/d
を指定しない場合、cmd
は次のレジストリ サブキーを検索します。HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ
一方または両方のレジストリ サブキーが存在する場合は、他のすべての変数の前に実行されます。
/e:off
を使用して、特定のプロセスのコマンド拡張機能を無効にすることができます。 次のcmd
値を設定することで、コンピューターまたはユーザー セッションのすべてのコマンドライン オプションの拡張機能を有効または無効にすることができます。HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
Regedit.exeを使用して、 レジストリのREG_DWORD 値を 0×1 (有効) または 0×0 (無効) に設定します。 ユーザー指定の設定はコンピューターの設定よりも優先され、コマンド ライン オプションはレジストリ設定よりも優先されます。
注意事項
レジストリを間違って編集すると、システムに重大な障害をもたらす可能性があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。
コマンド拡張機能を有効にすると、次のコマンドが影響を受けます。
assoc
call
-
chdir
(cd
) color
-
del
(erase
) endlocal
for
ftype
goto
if
-
mkdir
(md
) popd
prompt
pushd
set
setlocal
shift
-
start
(外部コマンド プロセスの変更も含まれます)
遅延環境変数の拡張を有効にした場合は、感嘆符文字 (
!
) を使用して、実行時に環境変数の値を置き換えることができます。ファイル名とディレクトリ名の入力候補は、既定では有効になっていません。
cmd
を使用して、/f:{on | off}
コマンドの特定のプロセスに対してファイル名の入力候補を有効または無効にすることができます。コンピューター上の
cmd
コマンドのすべてのプロセス、またはユーザー ログオン セッションのファイルとディレクトリ名の入力候補を有効または無効にするには、次の REG_DWORD 値を設定します。HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD
REG_DWORD値を設定するには、Regedit.exe を実行し、特定の関数の制御文字の 16 進数の値を使用します (たとえば、0×9 は TAB、0×08 は BACKSPACE)。 空白には [0×20] の値を使用します。これは有効な制御文字ではありません。 ユーザー指定の設定はコンピューターの設定よりも優先され、コマンド ライン オプションはレジストリ設定よりも優先されます。
注意事項
レジストリを間違って編集すると、システムに重大な障害をもたらす可能性があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。
/f:on
を使用してファイル名とディレクトリ名の入力候補を有効にする場合は、ディレクトリ名の入力候補に Ctrl + D キーを使用し、ファイル名の入力候補には Ctrl + F キーを使用します。 Ctrl + D キーと Ctrl + F キーの組み合わせの唯一の違いは、Ctrl + D がディレクトリ名と一致し、Ctrl + F がファイル名とディレクトリ名の両方に一致する点です。cd
、md
、またはrd
の組み込みディレクトリ コマンドでファイルとディレクトリ名の入力候補を使用する場合、ディレクトリの補完が想定されます。Ctrl + D キーまたは Ctrl + F キーを押すと、ファイルとディレクトリ名の入力候補が処理されます。 これらのキーの組み合わせ関数は、ワイルドカード文字が存在しない場合は
<string>
に追加し、一致するパスの一覧を作成してから、最初に一致するパスを表示します。 パスが一致しない場合、ファイル名とディレクトリ名の入力候補関数はビープ音を鳴らし、表示を変更しません。- 一致するパスの一覧を移動するには、 Ctrl + D キーまたは Ctrl + F キー を繰り返し押します。
- 一覧を後方に移動するには、 Shift キーと Ctrl + D キーまたは Ctrl + F キーを同時に押します。
- 一致するパスの保存されたリストを破棄して新しいリストを生成するには、
<string>
編集し、 Ctrl + D キーまたは Ctrl + F キーを押します。 - Ctrl + D と Ctrl + F を切り替えると、一致するパスの保存されたリストが破棄され、新しいリストが生成されます。
ファイル名とディレクトリ名の入力候補は、一致するパスを引用符で囲む場合、空白または特殊文字を含むファイル名を正しく処理します。
<string>
内からファイルとディレクトリ名の入力候補を処理する場合、完了が処理された<string>
の時点で、カーソルの右側のパスの一部は破棄されます。
環境変数の使用
cmd
コマンド シェル環境は、コマンド シェルとオペレーティング システムの動作を決定する変数によって定義されます。 システムとローカルの 2 種類の環境変数を使用して、コマンド シェル環境またはオペレーティング システム環境全体の動作を定義できます。 システム環境変数は、グローバル オペレーティング システム環境の動作を定義します。 ローカル環境変数は、 cmd
の現在のインスタンスの環境の動作を定義します。
システム変数を変更できるのは、管理特権を持つユーザーだけです。 これらの変数は、ログオン スクリプトでよく使用されます。 ローカル環境変数は、作成されたユーザーがコンピューターにログオンしている場合にのみ使用できます。 HKEY_CURRENT_USER ハイブで設定されたローカル変数は、現在のユーザーに対してのみ有効ですが、グローバル オペレーティング システム環境の動作を定義します。
次の一覧では、優先順位の降順でさまざまな種類の変数について説明します。
- 組み込みのシステム変数。
- HKEY_LOCAL_MACHINE ハイブで見つかったシステム変数。
- HKEY_CURRENT_USER ハイブで見つかったローカル変数。
- Autoexec.bat ファイルに設定されているすべての環境変数とパス。
- ログオン スクリプトに設定されているすべての環境変数とパス (存在する場合)。
- スクリプトまたはバッチ ファイルで対話形式で使用される変数。
コマンド シェルでは、 cmd
の各インスタンスが親アプリケーションの環境を継承します。 そのため、親アプリケーションの環境に影響を与えることなく、新しい cmd
環境の変数を変更できます。
次のいずれかのコマンドを実行して、環境内の環境変数を表示できます。
set
Get-ChildItem Env:
環境変数の設定
変数を表示するには、次のように入力します。
set <VariableName>
変数を追加するには、次のように入力します。
set <VariableName>=<value>
変数を削除するには、次のように入力します。
set <VariableName>=
空白を含め、ほとんどの文字を変数値として使用できます。 特殊文字 <、 >、|、または ^を使用する場合は、その前にエスケープ文字 ^
または 二重引用符を付ける必要があります。 二重引用符を使用する場合は、等号に続くすべてが値として取得されるため、値の一部として含まれます。 次の例を考えてみましょう。
変数値 New&Name
を作成するには、次のように入力します。
set <VariableName>=New^&Name
変数値 "New&Name"
を作成するには、次のように入力します。
set <VariableName>="New&Name"
コマンド プロンプトで set <VariableName>=New&Name
(カラット ^
または二重引用符を使用せずに) と入力すると、次のエラー メッセージが表示されることがあります。
"'Name' is not recognized as an internal or external command, operable program or batch file."
変数名では大文字と小文字は区別されません。 ただし、 set
は入力したとおりに変数を表示します。 変数名に大文字と小文字を組み合わせて、 ユーザー名などのコードを読みやすくすることができます。
注
- 個々の環境変数の最大サイズは 8,192 バイトです。
- 名前、値、等号を含むすべての環境変数の最大合計サイズは、1 つのプロセスで 65,536 文字です。
環境変数の値の置き換え
コマンド ラインまたはスクリプトで変数の値を置き換える場合は、変数名をパーセント記号 (%VariableName%) で囲みます。 これにより、 cmd
はリテラル テキストとして扱うのではなく、変数の値を参照できます。 スクリプトを実行すると、 cmd
は変数のインスタンスをその値に置き換えます。 たとえば、スクリプトで %USERNAME% を使用すると、実際のユーザー名に自動的に置き換えます。 変数の置換は再帰的ではありません。 cmd
は変数を 1 回だけチェックします。