多くのコンピューターでは、ユーザーが入力した文字を実行し、対応するプログラムを実行する、コマンドラインインタプリタという仕組みが備わっています。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)。
Windows 7の場合、選択をうながすダイアログは現れません。つまり、HKEY_CURRENT_USER\Consoleキー
もしくはショートカットファイルのいずれかに設定情報が格納されるようになりました。これとは別にWindows NT時代のテクニックはWindows 7でも使用できます。「start "custom" cmd」と、startコマンドにタイトルを付けてコマンドプロンプトを起動し、<プロパティ>から設定変更を行いますと、同タイトルを持ったキーがHKEY_CURRENT_USER\Console
キー下に作成され、ダイアログから行った設定情報が格納されます(図03~04)。
しかし、startコマンドはコマンドプロンプトの内部コマンドです。そのため、ショートカットファイルから呼び出すことはできませんが、一時的にコマンドプロンプトを変更する際のテクニックとして紹介しました(図05~08)。
ここでコマンドプロンプトの動作に関しても説明しておきましょう。コマンドプロンプトは起動方法によってタイトルバーの表記が異なります。図09は標準のショートカットファイル、cmd.exe、先ほど作成したショートカットファイルを起動したものですが、タイトルバーにはショートカットファイル名や実行ファイル名が表示されています。この点を参考に現在起動しているコマンドプロンプトを見分けてください(図09)。
もう一つはUAC(ユーザーアカウント制御)の有無。一般ユーザーの環境でコマンドプロンプトを起動した場合、ユーザープロファイルフォルダー(%USERPROFILE%)がカレントフォルダー(現在のフォルダー)となりますが、管理者権限で起動した場合は、%SystemRoot%\system32フォルダーがカレントフォルダーとなります。また、タイトルバーにも「管理者」が加わりますので、作業内容によって使い分ける習慣を付けましょう(図10~12)。