初めに結論
目的を達成するために、WSH(VBScript)でスクリプトを書いた。
- ReCreateShortcuts.zip (2 KB)
検索結果から作成したショートカットを、普通のショートカットに変換するスクリプト。- ここでいう「ショートカット」とは、拡張子が「
.lnk
」のファイル。
拡張子が「.url
」等のファイルは、対象外(というか、意味をなさない)。
- ここでいう「ショートカット」とは、拡張子が「
- 動作確認環境: Windows 7 Professional (Service Pack 1) 64ビット
- 誰かの役に立つかもしれないので、MITライセンス の下で公開。
- 上記のzipファイルには「
ReCreateShortcuts.vbs
」というファイルが入っており、これがスクリプト本体。
スクリプト(ReCreateShortcuts.vbs
) の使い方
変換したいショートカットファイル(複数可)を、ReCreateShortcuts.vbs
にドロップするだけ。
対象のショートカットは、削除→再作成される。
もし万が一があると困る方は、対象のショートカットファイルをバックアップしてから当スクリプトを実行すること。
筆者は 当スクリプトを「送る」(shell:sendto
) に配置して運用している。
困りごとの概要
エクスプローラーで検索した結果 をコピーしてショートカットファイルは、通常のショートカットファイルとは異なり、あくまで 検索結果へのリンク となる。(ショートカット先への直接リンクにはならない)
具体的には、たとえばリンク先が
「search-ms:displayname=検索場所%3A%20Program%20Files&crumb=すべてのテキスト:Microsoft&crumb=location:C%3A%5CProgram%20Files
」
などになり、直接リンク(「C:\Program Files\Microsoft Office
」など) にはならない。
筆者個人のニーズとしては、たとえ検索結果から作成したショートカットであろうとも、ショートカット先への直接リンクとして機能してほしい。
上記の挙動は、もしかしたら設定レベル(レジストリか何か)で変更できるのかもしれないが、手っ取り早くスクリプトを書いて解決した。
実現方法
WSH(VBScript)で、WScript.Shell
を使用して対象のショートカットファイルを再作成するだけ。再作成により、検索結果の情報が取り除かれて、いわゆる普通のショートカットに戻る。
ソースコード
※ソースファイルのエンコーディングは Shift_JIS (厳密には、コードページ932) になっている。ほかのエンコーディングに変えてしまうと、おそらく動作しない。
同じことで困っておりましたが、公開頂いたスクリプトで
返信削除解決しました。
本当に助かりました。
ありがとう
返信削除