読者です 読者をやめる 読者になる 読者になる

コマンドプロンプトのコマンド拡張機能はデフォルトで有効になっている

コマンドプロンプトのヘルプで一部のコマンドには、 「コマンド拡張機能を有効にすると…」といった記載があります。 ただ、有効か無効か確認方法が分かっていなかったのもあって、 これまで書いた各コマンドの記事では書いていませんでした。

例えば、DELコマンドのヘルプにはこう書かれています。

DELコマンドのヘルプより引用

コマンド拡張機能を有効にすると、DEL と ERASE は次のように変更されます:

/S スイッチの表示形式が逆になり、見つからなかったファイルではなく 削除されたファイルだけが表示されるようになります。

/Sスイッチ*1で 削除されたファイル名が表示されたのは、コマンド拡張機能が有効になっていたため。

コマンドプロンプトでDEL(ERASE)コマンドを使ってみる - Sprint Life

標準でコマンド拡張機能が有効になっていることは、CMDコマンド(コマンドプロンプトを起動する)の ヘルプに載っていました。*2

CMDコマンドのヘルプより引用

既定では、コマンド拡張機能は有効です。拡張機能を無効にして CMD.EXE を 起動するには、/E:OFF スイッチを使用します。

こちらもCMDコマンドのヘルプより引用

コンピューターに対しては、

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

に 0x1 を設定すると有効になり、0x0 を設定すると無効になります。

Windows 7でしか確認していませんが、拡張機能を無効にするには/E:OFFスイッチを使うか、 レジストリのキーの値を変更する必要があります。変更方法については省略しますが、 コマンドプロンプトのプロパティで設定できないのは、あえて無効にする必要性が少ないからでしょうか。

CMDコマンドについては先の話になりますが、別途書きたいと思います。

*1:オプションじゃなくてスイッチだと今さら気づきました

*2:何よりもまず最初に見るべきでした…