あるフォルダ以下に設定されているショートカットキーを列挙するスクリプト

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ファイルのフルパス名を表示する。