次の方法で共有


cmd

cmd.exeコマンド インタープリターの新しいインスタンスを開始します。 パラメーターを指定せずに使用すると、 cmd オペレーティング システムのバージョンと著作権情報が表示されます。

Note

Users seeking more advanced capabilities are encouraged to explore PowerShell for enhanced scripting and automation.

Syntax

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Parameters

Parameter Description
/c <string>で指定されたコマンドを実行し、コマンド プロセッサを終了します。
/k <string>で指定されたコマンドを実行し、コマンド プロセッサを実行したままにします。
/s /cまたは/kと共に使用すると、"の前後の最初と最後の引用符 (<string>) を削除する特殊な非解析規則がトリガーされますが、残りのコマンドは変更されません。
/q エコーをオフにします。
/d 自動実行コマンドの実行を無効にします。
/a コマンド出力を米国国立標準研究所 (ANSI) として書式設定します。
/u コマンド出力を Unicode として書式設定します。
/t:{<b><f> | <f>} Sets the background (b) and foreground (f) colors.
/e:on コマンド拡張機能を有効にします。
/e:off コマンド拡張機能を無効にします。
/f:on ファイル名とディレクトリ名の入力候補を有効にします。
/f:off ファイル名とディレクトリ名の入力候補を無効にします。
/v:on 遅延環境変数の拡張を有効にします。
/v:off 遅延環境変数の展開を無効にします。
<string> 実行するコマンドを指定します。
/? コマンド プロンプトにヘルプを表示します。

次の表に、 <b><f>の値として使用できる有効な 16 進数を示します。

Value Color
0 Black
1 Blue
2 Green
3 Aqua
4 Red
5 Purple
6 Yellow
7 White
8 Gray
9 Light blue
a Light green
b Light aqua
c Light red
d Light purple
e Light yellow
f Bright white

Remarks

  • コマンド出力を別のコマンドの入力にリダイレクトするには、パイプ (|) 演算子を使用します。 For example:

    <command1> | <command2>
    
  • 二重パイプ (||) 演算子は、前のコマンドが失敗した場合にのみ、次のコマンドを実行するために使用されます。 特定のシナリオでは、 command2 は、 command1 が失敗した場合にのみ実行されます。 For example:

    <command1> || <command2>
    
  • コマンド出力をファイルにリダイレクトするには、大角かっこ > 文字を使用します。 For example:

    <command1> > <file1.txt>
    
  • 複数のコマンドをグループ化または入れ子にするには、 &を使用します。 For example:

    <command1> & <command2>
    
  • <string>に複数のコマンドを使用するには、コマンド区切り記号&&で区切ります。 For example:

    <command1> && <command2> && <command3>
    

    Note

    &&を使用すると、上記のコマンドが正常に完了した場合にのみ、次の&&コマンドが実行されます。 Cmd は最初のコマンドを実行し、前のコマンドが成功した場合にのみ次のコマンドに進みます。 それ以外の場合、前のコマンドが失敗した場合、後続のコマンドは実行されません。

  • アンパサンド &、パイプ |、かっこ ( ) は、引数として渡すときにエスケープ文字 ^ または引用符で囲む必要がある特殊文字です。

  • コマンドが操作を正常に完了すると、0 の終了コードまたは終了コードが返されません。

  • ディレクトリ パス、ファイル、または指定する情報にスペースが含まれている場合は、テキストの周囲に二重引用符 (" ") を使用する必要があります ( "Computer Name"など)。 For example:

    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を使用して、特定のプロセスのコマンド拡張機能を無効にすることができます。 You can enable or disable extensions for all cmd command-line options on a computer or user session by setting the following REG_DWORD values:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Set the REG_DWORD value to either 0×1 (enabled) or 0×0 (disabled) in the registry by using Regedit.exe. ユーザー指定の設定はコンピューターの設定よりも優先され、コマンド ライン オプションはレジストリ設定よりも優先されます。

    Caution

    レジストリを間違って編集すると、システムに重大な障害をもたらす可能性があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。

  • コマンド拡張機能を有効にすると、次のコマンドが影響を受けます。

    • 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} コマンドの特定のプロセスに対してファイル名の入力候補を有効または無効にすることができます。

  • You can enable or disable file and directory name completion for all processes of the cmd command on a computer or for a user logon session by setting the following REG_DWORD values:

    • 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

    To set the REG_DWORD value, run Regedit.exe and use the hexadecimal value of a control character for a particular function (for example, 0×9 is TAB and 0×08 is BACKSPACE). Use the [0×20] value for white space, because it isn't a valid control character. ユーザー指定の設定はコンピューターの設定よりも優先され、コマンド ライン オプションはレジストリ設定よりも優先されます。

    Caution

    レジストリを間違って編集すると、システムに重大な障害をもたらす可能性があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。

  • If you enable file and directory name completion by using /f:on, use CTRL+D for directory name completion and CTRL+F for file name completion. The only difference between the key combinations CTRL+D and CTRL+F is that CTRL+D only matches directory names and CTRL+F matches both file and directory names. cdmd、またはrdの組み込みディレクトリ コマンドでファイルとディレクトリ名の入力候補を使用する場合、ディレクトリの補完が想定されます。

  • Pressing CTRL+D or CTRL+F processes the file and directory name completion. これらのキーの組み合わせ関数は、ワイルドカード文字が存在しない場合は <string> に追加し、一致するパスの一覧を作成してから、最初に一致するパスを表示します。 パスが一致しない場合、ファイル名とディレクトリ名の入力候補関数はビープ音を鳴らし、表示を変更しません。

    • To move through the list of matching paths, press CTRL+D or CTRL+F repeatedly.
    • To move through the list backwards, press the SHIFT key and CTRL+D or CTRL+F simultaneously.
    • To discard the saved list of matching paths and generate a new list, edit <string> and press CTRL+D or CTRL+F.
    • If you switch between CTRL+D and CTRL+F, the saved list of matching paths is discarded, and a new list is generated.
  • ファイル名とディレクトリ名の入力候補は、一致するパスを引用符で囲む場合、空白または特殊文字を含むファイル名を正しく処理します。

  • If you process file and directory name completion from within <string>, at the point in <string> where the completion was processed, any part of the path to the right of the cursor is discarded.

環境変数の使用

cmdコマンド シェル環境は、コマンド シェルとオペレーティング システムの動作を決定する変数によって定義されます。 システムとローカルの 2 種類の環境変数を使用して、コマンド シェル環境またはオペレーティング システム環境全体の動作を定義できます。 システム環境変数は、グローバル オペレーティング システム環境の動作を定義します。 ローカル環境変数は、 cmdの現在のインスタンスの環境の動作を定義します。

システム変数を変更できるのは、管理特権を持つユーザーだけです。 これらの変数は、ログオン スクリプトでよく使用されます。 ローカル環境変数は、作成されたユーザーがコンピューターにログオンしている場合にのみ使用できます。 Local variables set in the HKEY_CURRENT_USER hive are valid only for the current user, but define the behavior of the global operating system environment.

次の一覧では、優先順位の降順でさまざまな種類の変数について説明します。

  1. 組み込みのシステム変数。
  2. System variables found in the HKEY_LOCAL_MACHINE hive.
  3. Local variables found in the HKEY_CURRENT_USER hive.
  4. Autoexec.bat ファイルに設定されているすべての環境変数とパス。
  5. ログオン スクリプトに設定されているすべての環境変数とパス (存在する場合)。
  6. スクリプトまたはバッチ ファイルで対話形式で使用される変数。

コマンド シェルでは、 cmd の各インスタンスが親アプリケーションの環境を継承します。 そのため、親アプリケーションの環境に影響を与えることなく、新しい cmd 環境の変数を変更できます。

次のいずれかのコマンドを実行して、環境内の環境変数を表示できます。

set
Get-ChildItem Env:

環境変数の設定

変数を表示するには、次のように入力します。

set <VariableName>

変数を追加するには、次のように入力します。

set <VariableName>=<value>

変数を削除するには、次のように入力します。

set <VariableName>=

空白を含め、ほとんどの文字を変数値として使用できます。 If you use the special characters <, >, |, &, or ^, you must precede them with the escape character ^or double quotation marks. 二重引用符を使用する場合は、等号に続くすべてが値として取得されるため、値の一部として含まれます。 次の例を考えてみましょう。

変数値 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 は入力したとおりに変数を表示します。 You can combine uppercase and lowercase letters in your variable names to make your code more readable, for example, UserName.

Note

  • 個々の環境変数の最大サイズは 8,192 バイトです。
  • 名前、値、等号を含むすべての環境変数の最大合計サイズは、1 つのプロセスで 65,536 文字です。

環境変数の値の置き換え

コマンド ラインまたはスクリプトで変数の値を置き換える場合は、変数名をパーセント記号 (%VariableName%) で囲みます。 これにより、 cmd はリテラル テキストとして扱うのではなく、変数の値を参照できます。 スクリプトを実行すると、 cmd は変数のインスタンスをその値に置き換えます。 たとえば、スクリプトで %USERNAME% を使用すると、実際のユーザー名に自動的に置き換えます。 変数の置換は再帰的ではありません。 cmd は変数を 1 回だけチェックします。