こんにちは、阿久津です。Windows OSでは、ショートカットファイルを作成する際、「○○のショートカットファイル」(Windows XP)、「○○ - ショートカット」(Windows Vista、Windows 7)と、ショートカットファイルであることを表す接尾辞がファイル名に付加されます。本来はショートカットファイルを一目で把握できるため、ユーザビリティ的には歓迎すべき仕様ですが、リネーム操作を行うユーザーには煩雑な手続きになりかねません。

そのように考えるユーザー向けとして、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーのバイナリ値「link」の数値を変更することで、同仕様を無効にする定番チューニングが使われてきました。同エントリ自体はWindows 7でも使用可能です。

しかし、もっと簡単なチューニングで「 - ショートカット」を取り除く方法が存在するのをご存じでしょうか。今回はショートカットファイルおよびコピーしたファイルの接頭辞と接尾辞を変更するチューニングをお送りします。

1.管理者権限で「regedit」を実行します。
2.レジストリエディターが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーを開きます。
3.新たにNamingTemplatesキーを作成します。
4.文字列値「ShortcutNameTemplate」を作成し、データ値を「%s.lnk」に変更します。
5.文字列値「CopyNameTemplate」を作成し、データ値を「%s」に変更します。
6.[F5]キーを押して変更内容をシステムに反映させてから、レジストリエディターを終了させます。

これでチューニングが終了しました(図01~11)。

図01: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図02: レジストリエディターが起動したら、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorerキーを開きます

図03: Explorerキーを右クリックし、メニューから<新規>→<キー>とクリックします

図04: キー名を「新しいキー #1」から「NamingTemplates」に変更します

図05: NamingTemplatesキーを開き、右ペインの何もないところ右クリックします。メニューから<新規>→<文字列値>とクリックしてください

図06: 値名を「新しい値 #1」から「ShortcutNameTemplate」に変更します

図07: 文字列値「ShortcutNameTemplate」をダブルクリックし、値のデータを「%s.lnk」に変更して<OK>ボタンをクリックします

図08: 同様に右ペインの何もないところ右クリックし、メニューから<新規>→<文字列値>とクリックします

図09: 値名を「新しい値 #1」から「CopyNameTemplate」に変更します

図10: 文字列値「CopyNameTemplate」をダブルクリックし、値のデータを「%s」に変更して<OK>ボタンをクリックします

図11: [F5]キーを押して変更内容をシステムに反映させてから、<×>ボタンをクリックしてレジストリエディターを終了させます

それでは結果を確認してみましょう。任意のファイルを用意し、コンテキストメニューから<ショートカットの作成>を選択するなどしてショートカットファイルを作成します。続いて対象となるファイルを選択した状態で[Ctrl]+[C]キー→[Ctrl]+[V]キーと押してファイルのコピーを作成してください。

すると、本来であれば「○○ - ショートカット」「○○ - コピー」となりますが、チューニング後は「○○」というショートカットファイル名が作成され、コピーしたファイルは同一フォルダー内であれば「○○ (2)」、異なるフォルダーであれば「○○」と元のファイル名がそのまま付けられます(図12~13)。

図12: こちらはチューニング前の状態。ショートカットファイルおよびコピーしたファイル名は見慣れたものです

図13: こちらはチューニング後の状態。ショートカットファイルの接尾辞は取り除かれました。コピーしたファイルは同一フォルダーのため、丸括弧付き数値が付きます

本チューニングで興味深いのが、NamingTemplatesキーの存在。すべてのシステムファイルから文字列を取り出したデータベースに対して検索を行いますと、%SystemRoot% \ System32 \ Shell32.dllが同キーを参照していていました。しかし、Windows VistaやWindows XPの同ファイルはNamingTemplatesキーに関するエントリが見つかりません。

では、Windows Vistaに本チューニングは適用できないのかと言えば、結果は適用可能です。筆者が作成したデータベースに漏れがあった可能性は拭いきれません。同様にWindows XPでもNamingTemplatesキーの存在は見つけられず、本チューニングも適用されませんでした(図14~15)。

図14: Windows Vistaで同様のチューニングを行った結果、Windows 7と同じ動作に切り替わります

図15: こちらはWindows XP。同様のチューニングを行いましたが適用されませんでした

ところでチューニングに慣れた方ならピンと来るように、文字列値「ShortcutNameTemplate」および「CopyNameTemplate」は値名が示すようにファイル名の接頭辞、接尾辞を変更するテンプレートです。例えば文字列値「ShortcutNameTemplate 」のデータ値を「%s へのショートカット.lnk」、文字列値「CopyNameTemplate」のデータ値を「コピー ~ %s」に変更することで、Windows XPと同じような接頭辞、接尾辞が付くようになります(図16~17)。

図16: 文字列値「ShortcutNameTemplate」のデータ値を「%s へのショートカット.lnk」、文字列値「CopyNameTemplate」のデータ値を「コピー ~ %s」に変更します

図17: すると、Windows XPのようにショートカットファイルには接尾辞が、コピーしたファイルは接頭辞が付くようになります

NamingTemplatesキーは下位互換性を維持するために用意されたものですが、使い方によっては、より面白い規則性を持たせることが可能ではないでしょうか。一例を挙げれば文字列値「CopyNameTemplate」のデータ値を「%s()」とすることで、常に丸括弧付き数値が接尾辞として付くようになります。

ただ残念なのは、変数として使えるのがベースとなるファイル名である「%s」以外わかっていません。%aから%zまで試してみましたが、意味をなさない数値やExplorer.exeがハングアップするような結果になり、有用な情報を得ることができませんでした。このあたりは読者が楽しむチューニングということで、そのままにしておきます。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)