多くのコンピューターでは、ユーザーが入力した文字を実行し、対応するプログラムを実行する、コマンドラインインタプリタという仕組みが備わっています。UNIXやLinuxでは、bash(Bourne Again Shell)が提供され、Windows 7では、コマンドプロンプト(実行ファイルはcmd.exe)を用意。一般的にこれらのプログラムをシェルと称していますが、あくまでもシェルはコマンドラインインタプリタというジャンルに属するプログラムが提供する機能です。

Windows OSは歴史的背景から、前身OSとなるMS-DOSとの互換性維持を求められており、16ビット版Windows OSの頃はバーチャルマシン(仮想機械)としてMS-DOS環境を実現してきました。ちなみに9x系WindowsとNT系Windowsでは、OSの設計差から実装形式が異なります。前者はハードウェアを仮想デバイス経由でアクセスできましたが、後者は一部の機能が取り除かれているため、エミュレーター的な存在と言えるでしょう。

さて、GUI(グラフィカルユーザーインターフェース)全盛期の時代に、なぜコマンドプロンプトというCUI(キャラクターユーザーインターフェース )プログラムを見直す必要があるのでしょうか。目の前にあるコンピューターでアプリケーションが実行できればよい、と考える方にコマンドプロンプトは確かに不要なUI(ユーザーインターフェース)です。

しかし、コンピューターの本来の姿であるシェルの使い方を学ぶことで、多くのトラブルや操作性の向上につながることは間違いありません。直感的な操作や容易に自動化できるCUIの有利性を得るためにも、コマンドプロンプトの使い方を覚えていきましょう。

コマンドプロンプトのショートカットファイルを作成する

それでは、コマンドプロンプトのカスタマイズに取りかかりましょう。最初に行う作業は、ショートカットファイルの作成です。Windows 7では、コマンドプロンプトの設定を格納する方式が複数用意されており、既存のショートカットファイルに対して操作を行いますと、ほかのアプリケーションがコマンドプロンプトを使用する際に影響を与えかねないからです。

まずは図01をご覧ください。コマンドプロンプトのアプリケーションメニューから開く<既定値>を選択した場合は、既存のHKEY_CURRENT_USER\Consoleキーの情報が参照され、同メニューの<プロパティ>を選択した場合はショートカットファイル内の設定情報が参照されます。ここは誤解しやすいポイントで、Windows XP時代のコマンドプロンプトで<プロパティ>から設定変更を行い、適用時に現れるダイアログから<同じタイトルのウィンドウに適用する>を選択した場合、HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exeキーが生成され、設定情報がレジストリ内に格納されます(図01~02)。

図01 コマンドプロンプトの設定格納場所

図02 Windows XP時代に現れた確認選択ダイアログ

Windows 7の場合、選択をうながすダイアログは現れません。つまり、HKEY_CURRENT_USER\Consoleキーもしくはショートカットファイルのいずれかに設定情報が格納されるようになりました。これとは別にWindows NT時代のテクニックはWindows 7でも使用できます。「start "custom" cmd」と、startコマンドにタイトルを付けてコマンドプロンプトを起動し、<プロパティ>から設定変更を行いますと、同タイトルを持ったキーがHKEY_CURRENT_USER\Consoleキー下に作成され、ダイアログから行った設定情報が格納されます(図03~04)。

図03 コマンドプロンプトから「start "custom" cmd」と入力して[Enter]キーを押します

図04 新たに開いたコマンドプロンプトで<プロパティ>から設定を変更しますと、タイトル名を持つサブキーが作成され、情報が格納されます

しかし、startコマンドはコマンドプロンプトの内部コマンドです。そのため、ショートカットファイルから呼び出すことはできませんが、一時的にコマンドプロンプトを変更する際のテクニックとして紹介しました(図05~08)。

図05 デスクトップの何もないところを右クリックし、メニューから<新規作成>→<ショートカット>と順にクリックします

図06 テキストボックスに「cmd.exe」と入力して、<次へ>ボタンをクリックします

図07 テキストボックスの内容を「CMD」に変更して、<完了>ボタンをクリックします

図08 これでカスタマイズ対象となるショートカットファイルが作成されました

ここでコマンドプロンプトの動作に関しても説明しておきましょう。コマンドプロンプトは起動方法によってタイトルバーの表記が異なります。図09は標準のショートカットファイル、cmd.exe、先ほど作成したショートカットファイルを起動したものですが、タイトルバーにはショートカットファイル名や実行ファイル名が表示されています。この点を参考に現在起動しているコマンドプロンプトを見分けてください(図09)。

図09 タイトルバーには起動したショートカットファイル名や実行ファイル名が表示されます

もう一つはUAC(ユーザーアカウント制御)の有無。一般ユーザーの環境でコマンドプロンプトを起動した場合、ユーザープロファイルフォルダー(%USERPROFILE%)がカレントフォルダー(現在のフォルダー)となりますが、管理者権限で起動した場合は、%SystemRoot%\system32フォルダーがカレントフォルダーとなります。また、タイトルバーにも「管理者」が加わりますので、作業内容によって使い分ける習慣を付けましょう(図10~12)。

図10 <スタート>を開いてテキストボックスに「cmd」と入力。列挙された同名のファイルを右クリックし、メニューから<管理者として実行>をクリックします

図11 ユーザーアカウント制御のダイアログが現れます。<はい>ボタンをクリックしてください

図12 管理者権限で起動したコマンドプロンプトのタイトルバーには「管理者」が加わります