通过自动脚本重新格式化Windows lnk文件

时间:2008-12-05 00:21:24

标签: windows shortcut symlink lnk

问题: C驱动器上有一堆.lnk文件指向J:驱动器,但J:驱动器已经消失,P:驱动器已经替换它。已经做了各种各样的技巧来使.lnk文件仍然可以工作,但它变得很烦人,现在是时候修复它了。

使用Ruby,Python,WSH.JScript或Perl,你可以遍历.lnk文件的整个目录树并更改它们,使它们指向p:/ *而不是j:/ *?你会怎么做呢?

注意:这对我来说并不是完全不为人知的,但无论如何我都会问这个问题,因为我用迄今为止发现的方式管理.lnk文件的API看起来太麻烦了最着名的做法。这是绝对的“必须有更好的方式”类型问题之一。

3 个答案:

答案 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资料)。语法很简单,链接文件成为标准输出中的简单文本。