问题: C驱动器上有一堆.lnk文件指向J:驱动器,但J:驱动器已经消失,P:驱动器已经替换它。已经做了各种各样的技巧来使.lnk文件仍然可以工作,但它变得很烦人,现在是时候修复它了。
使用Ruby,Python,WSH.JScript或Perl,你可以遍历.lnk文件的整个目录树并更改它们,使它们指向p:/ *而不是j:/ *?你会怎么做呢?
注意:这对我来说并不是完全不为人知的,但无论如何我都会问这个问题,因为我用迄今为止发现的方式管理.lnk文件的API看起来太麻烦了最着名的做法。这是绝对的“必须有更好的方式”类型问题之一。
答案 0 :(得分:4)
在WindowsNT资源工具包中,有一个名为Shortcut.exe的命令行实用程序,我可靠地通知它也将在XP / 2000/2003下运行。您可以使用各种命令行开关来修改现有LNK文件以指向新的快捷方式。
我在这里找到了相关信息: http://www.ss64.com/nt/shortcut.html
我敢说,在微软网站上搜索WindowsNT资源工具包并将其解压缩并不难。它是一个命令行实用程序,因此您应该能够批处理它以遍历所有LNK文件并修改它们以使它们正确。
答案 1 :(得分:2)
我们发现这个VB脚本工作正常。
http://www.enterpriseitplanet.com/resources/scripts_win/article.php/3081941
一些警告:
小心!它从驱动器的根目录运行。如果您在自己的计算机上进行测试,则可能会重新映射所有Windows快捷方式 - 例如。那些在你的开始菜单上!我们稍微编辑了脚本以获得更多控制(在Main()方法中):
dim onlyFolder
Set onlyFolder =fso.GetFolder("C:\")
SearchFolder onlyFolder
' for each aDrive in fso.Drives
' if aDrive.DriveType = 2 then
' SearchFolder aDrive.RootFolder
' end if
' next
fixlinks.ini文件不喜欢空行,它必须是偶数行。
它在后台运行,可能会弹出困难目录的权限错误。除了最后的确认窗口外,很难判断它何时完成。可能最好在Process Explorer中关注它,并在Vista / etc上以管理员身份从命令shell运行它。
除此之外,工作得很好!
答案 2 :(得分:2)
只需在 J.A.F.A.T使用lnk文件解析器。法医分析工具项目存档。
请参阅http://jafat.sourceforge.net
上的lnk-parse-1.0.pl似乎没有任何依赖关系(尤其是不太糟糕的Windows资料)。语法很简单,链接文件成为标准输出中的简单文本。