1. ホーム
  2. スクリプト・コラム
  3. DOS/BAT

cmd.exe 共通スタートアップ・パラメーター入門

2022-02-10 09:59:56

batで直接コマンドを実行すると、ウィンドウが自動的に閉じられ、効果が見えないので、ウィンドウに

host[port]

いちいちpauseをつける必要はない。なぜなら、多くのバットラーニングではエラーになるケースが多いので、エラーメッセージを見ればいいのです。

コマンドインタプリタCmd.exeを起動する新しい例です。引数なしで使用すると、cmdはOSのバージョンと著作権情報を表示します。
構文
cmd [{/c | /k}] [/s] [/q] [/d] [{/a | /u}] [/t:FG] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [String] [文字列

パラメータ
/c

Stringで指定されたコマンドを実行し、実行が完了したら停止して終了します。例

CoGetInstanceFromIStorage

後者の一時停止とclsも実行され、実行の終了時に現在の実行時環境(方法を実行するためにダブルクリック)を終了しますが、現在の環境変数xxxは保持されません(スタート>実行>cmd、その後方法の実行後に現在のbatファイルを実行し、現在の環境変数を見て再び設定入力します)。

/k

Stringで指定されたコマンドを実行し、続行する。現在の実行ウィンドウと環境変数は、実行後も維持される。例

NT AUTHORITY\SYSTEM

cmdの後の文字列でコマンドを実行した後、実行を一時停止しますので、その後のpauseやclsは実行されません。しかし、ウィンドウと環境変数は残ります。実行方法 ダブルクリックするか、現在のbatファイルをコマンドラインから実行する

/s

c または /k の後の String の取り扱いを変更します。

/q

ディスプレイバックをオフにする。

/d

AutoRunコマンドの実行を無効にします。

/a

内部コマンドの出力をアメリカ規格協会(ANSI)によりパイプまたはファイルとしてフォーマットします。

/u

内部コマンドの出力を Unicode としてパイプまたはファイルにフォーマットします。

/t:FG

前景色Fと背景色Gを設定します。次の表は、FとGの値として使用できる有効な16進数の一覧です。

<テーブル 値 カラー 0 ブラック 1 青 2 グリーン 3 ライトグリーン 4 赤色 5 パープル 6 黄色 7 白色 8 グレー 9 ライトブルー A ライトグリーン B 明るいライトグリーン C ライトレッド D モーブ E 淡い黄色 F 明るい白

/e:on

コマンドエクステンションを有効にします。

/e:off

コマンドエクステンションを無効にする。

/f:on

ファイル名とディレクトリ名の補完を有効にします。

/f:off

ファイル名とディレクトリ名の補完を無効にします。

/v:on

遅延環境変数の拡張を有効にする。

/v:off

遅延環境変数の拡張を無効にします。

文字列

実行するコマンドを指定します。

/?

コマンドプロンプトにヘルプを表示します。

コメント

複数のコマンドを使用する

コマンドセパレーター && で区切られた複数のコマンドを String で使用することができますが、引用符で囲む必要があります (例: "Command&&Command").

?
引用符の扱い

c または /k が指定された場合、cmd は残りのコマンドを String で処理し、以下の条件をすべて満たす場合にのみ引用符を保持します。

/sは使用されません。

引用符の正確なペアが使用されます。
引用符の中に特殊文字を使用しない(例:&<>( ) @ ^ |)。
引用符の中に1つ以上の空白文字が使用されている。

引用符の中の文字列は、実行ファイル名です。

上記の条件を満たさない場合、Stringはまずその最初の文字が左引用であることを確認し、処理される。最初の文字が左引用である場合、右引用から分離される。右の引用符の後に続くテキストはすべて保存されます。

レジストリのサブセクションを実行する

Stringに/dが指定されていない場合、Cmd.exeは以下のレジストリサブセクションを検索します。

HKEY_LOCAL_MACHINE/SoftwareMicrosoftCommand ProcessorAutoRunREG_SZ

HKEY_CURRENT_USER

これらのレジストリサブセクションの1つまたは両方が存在する場合、他のすべての変数が実行される前に、それらが実行されます。

警告

レジストリを不適切に編集すると、システムに重大な損傷を与える可能性があります。レジストリを変更する前に、コンピューター上の貴重なデータをバックアップしてください。
コマンドエクステンションの有効化・無効化

Windows XP では、コマンド拡張機能はデフォルトで有効になっています。特定のプロセスでは、/e:off を使用して無効にすることができます。すべてのcmdコマンドラインオプション拡張は、以下のREG_DWORD値を設定することにより、コンピュータまたはユーザーセッションで有効または無効にすることができます。

HKEY_LOCAL_MACHINE/SoftwareMicrosoft Command Processor EnableExtensions
HKEY_CURRENT_USER SoftwareMicrosoftCommand Processor EnableExtensions_DWORD

REG_DWORDの値は、レジストリのRegedit.exeで0×1(=有効)または0×0(=無効)に設定することができます。ユーザー固有の設定はコンピューターの設定より優先され、コマンドラインオプションはレジストリの設定より優先されます。

警告

レジストリを不適切に編集すると、システムに重大な損傷を与える可能性があります。レジストリを変更する前に、コンピューター上の貴重なデータをバックアップしてください。
コマンド拡張機能を有効にすると、以下のコマンドに影響があります。

<テーブル ? アソーク ? コール ? chdir (cd) ? カラー ? del(イレーズ) ? エンドローカル ? について ? ftype ? 行く ? もし ? mkdir (md) ? ポップド ? プロンプト ? プッシュ ? セット ? セットローカル ? シフト ? 開始(変更される外部コマンド手順も含む)

これらのコマンドの詳細については、「関連項目」を参照してください。
遅延環境変数の拡張を有効にする

遅延環境変数の展開を有効にすると、実行時環境変数の値の代わりにエクスクラメーションマーク文字が使用できるようになります。
ファイル名とディレクトリ名の補完を有効にする

デフォルトでは、ファイル名とディレクトリ名の補完は無効になっています。特定の cmd コマンド処理に対して、/f:{on|off を使用してファイル名補完を有効または無効にできます。以下のREG_DWORD値を設定することにより、コンピューターまたはユーザーのログインセッションのすべてのcmdコマンド処理でファイルおよびディレクトリ名の補完を有効または無効にすることができます。

HKEY_LOCAL_MACHINE/SoftwareMicrosoft Command Processor/CompletionChar
HKEY_LOCAL_MACHINE@SoftwareMicrosoft¥Command Processor¥PathCompletionChar¥REG_DWORD
HKEY_CURRENT_USER SoftwareMicrosoft Command Processor
HKEY_CURRENT_USER SoftwareMicrosoftCommand Processor PathCompletionCharREG_DWORD

REG_DWORDの値を設定するには、Regedit.exeを実行し、機能固有の制御文字の16進数値を使用します(例:Tabキーには0×9、BackSpaceキーには0×08を使用します)。ユーザー固有の設定はコンピュータの設定より優先され、コマンドラインオプションはレジストリの設定より優先されます。

警告

レジストリを不適切に編集すると、システムに重大な損傷を与える可能性があります。レジストリを変更する前に、コンピューター上の貴重なデータをバックアップしてください。

f:onでファイル名とディレクトリ名の補完が有効になっている場合、ディレクトリ名の補完にはCtrl+D、ファイル名の補完にはCtrl+Fを使用します。レジストリで特定の補完文字を無効にするには、スペースは有効な制御文字ではないため、スペース [0×20] の値を使用します。

Ctrl+D、Ctrl+Fを押すと、cmdはファイル名やディレクトリ名の補完操作を処理します。これらのキーの組み合わせの効果は、(まだ使用されていない場合) String にワイルドカードを追加し、一致するパスのリストを作成し、最初に一致するパスを表示することです。すべてのパスが一致しない場合、ファイル名とディレクトリ名の補完操作は警告を発し、表示される内容は変更されない。一致するパスのリストのパスを1つずつ表示するには、Ctrl+DまたはCtrl+Fを繰り返し押します。リストを逆に表示するには、Shiftを押しながらCtrl+DまたはCtrl+Fを押します。保存した一致するパスのリストを破棄して新しいリストを生成するには、Stringを編集してCtrl+DまたはCtrl+Fを押します。を切り替えると、Ctrl+D と Ctrl+F の組み合わせは、Ctrl+D がディレクトリ名のみにマッチし、Ctrl+F がファイル名とディレクトリ名の両方にマッチするという違いだけです。内部ディレクトリ・コマンド(CD、MD、RDなど)でファイル名およびディレクトリ名の補完を使用した場合、ディレクトリ補完だけが使用されます。

ファイル名およびディレクトリ名の補完では、一致するパスが引用符で囲まれている場合、スペースや特殊文字を含むファイル名を正しく処理します。

以下の特殊文字は引用符が必要です: & < > [ ] { }. ^ = ; ! ' + , ` ~ [スペース]
提供された情報にスペースが含まれる場合は、引用符で囲んでください(例:"コンピュータ名")。
ファイル名やディレクトリ名の補完操作がString内から処理された場合、カーソルの右側(つまりString内で補完操作が処理された部分)の[Path]の部分はすべてドロップされます。