いままでいくつかのオプションを紹介してきたが、ここでcmd.exeの起動オプションについてまとめておこう。
cmd.exeには、大きく分けて2つの起動方法がある。1つは、コマンド プロンプト ウィンドウで、ユーザーの入力を受け付けるコマンド プロセッサとしての起動方法である。もう1つは、"/c"オプションを使い、引数として指定したコマンドを実行するだけの起動方法である(バッチファイルを実行した場合も、この起動方法になる)。この場合、指定されたコマンドの実行が終了すると、ウィンドウは自動的に閉じられてしまう。コマンド実行後もコマンド プロンプト ウィンドウを開いたままにして、引き続きコマンドを入力、実行できるようにするためには、"/c"オプションではなく"/k"オプションを使用する。
"/e"による拡張機能の有効/無効オンオフは、内部コマンドの動作に影響する。ただし、デフォルトでは、オンになっており、オフにすると、コマンドの実行結果に影響が及ぶ。またこの設定に関しても、
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
に0x0(オフ)か0x1(オン)を設定することで、すべてのcmd.exeに対して働く動作する設定が可能である。
遅延環境変数展開については、別途、変数を解説するときに解説する予定である。簡単にいうと、setコマンドで設定した変数を"!var!"という形でコマンドの引数に指定すると、実行直前にこれが変数の内容と置き換わるというものである。例えば、varがいま"c:\winnt"だとすると、
dir !var!
というコマンドは、
dir c:\winnt
として実行される。
従来のWindowsやDOSとの互換性を保つために、Windows2000には、16bitプログラム用のシェルであるcommand.comも用意されている(標準ではC:\winnt\system32\command.com)。これを起動すると16bit環境となり、Windows 95/98などのコマンド プロンプトと同じ環境となる。ただし、16bit環境でないと動かないプログラムを利用するような場合以外では、これを明示的に使う必要はないと思われる。また、16bitのコンソール プログラムを実行すると、自動的にこのcommand.comが起動して16bit環境を作ったのちに、プログラムが実行されるようになっている。
Copyright© Digital Advantage Corp. All Rights Reserved.