あるフォルダ以下に設定されているショートカットキーを列挙するスクリプト
question:1116567534への回答用。
Dim str Set WSHShell = Wscript.CreateObject("Wscript.Shell") Set Fs = WScript.CreateObject("Scripting.FileSystemObject") Set arg=WScript.Arguments '1.WshArgumentsオブジェクトを取得。 If arg.Count=0 Then '2.もしオプションがついていなければ path=InputBox("検索したいフォルダ名を入力してください。") Else '3.オプションがついていれば、一つ目のオプションをパスとして読み込む path=arg(0) End If If Fs.FolderExists(path) Then '4.もし、与えられたパスがフォルダなら Call RecursibleSearch(path) '5.RecursibleSearchプロシージャを呼ぶ Else '6.パスが存在しない場合、終了 MsgBox "このパスは実在しません。" WScript.Quit End If Msgbox str,, path & "以下に設定されたショートカットキー" Sub RecursibleSearch(folderspec) '7.引数としてフォルダのパスを指定する Set fol = Fs.GetFolder(folderspec) '8.Folderオブジェクト取得 Set flc = fol.Files '10.FilesプロパティはFilesコレクションを返す For Each fl1 in flc '11.FilesコレクションのすべてのFileオブジェクトについて繰り返す If Fs.GetExtensionName(fl1)="lnk" then Set objSc = WSHShell.CreateShortcut(fl1) If objSc.Hotkey <> "" Then str =str & objSc.Hotkey & vbtab & objSc.TargetPath & vbcrlf End If End If Next Set sfc = fol.SubFolders '13.SubFoldersプロパティは、サブフォルダのFoldersコレクションを返す For Each sf1 in sfc '14.FoldersコレクションのすべてのFolderオブジェクトについて繰り返す Call RecursibleSearch(sf1.Path) '15.再帰呼び出し Next End Sub
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/refer/lesson14.htm
のサンプル丸パクリ(汗。とあと↓こっちも。
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shortcut.htm
変数長とか調べてないのでどの程度使えるか不明。とりあえず動いたよレベル。
- 使い方
スクリプトをメモ帳などに貼り付け、「FindHotkey.vbs」とかいう名前で保存しておく。
保存したスクリプトのアイコンにフォルダをドラッグすると、ドラッグしたフォルダ以下の.lnkファイルを検索し、設定されているショートカットキーと.lnkファイルのフルパス名を表示する。