3

问题: C盘上有一堆.lnk文件指向J:盘,但是J:盘不见了,取而代之的是P:盘。已经采取了各种技巧来让 .lnk 文件仍然可以正常工作,但这变得很烦人,是时候修复这些问题了。

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

注意:这对我来说并不是一个完全未知的问题,但我还是会问这个问题,因为以我迄今为止发现的方式管理 .lnk 文件的 API 似乎过于繁琐,无法成为最知名的方式。这是那些“必须有更好的方法”类型的问题之一。

4

3 回答 3

4

在 WindowsNT Resource Kit 中有一个名为 Shortcut.exe 的命令行实用程序,据我所知,它也可以在 XP/2000/2003 下运行。您可以使用各种命令行开关来修改现有的 LNK 文件以指向新的快捷方式。

我在这里找到了有关它的信息: http ://www.ss64.com/nt/shortcut.html

我敢说在 Microsoft 网站上搜索 WindowsNT 资源工具包并提取它不会太难。它是一个命令行实用程序,因此您应该能够批处理它以循环遍历所有 LNK 文件并修改它们以使其正确。

于 2008-12-05T00:33:51.323 回答
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 运行它。

除此之外,工作得很好!

于 2009-07-31T10:40:51.377 回答
2

只需在JAFAT Archive of Forensics Analysis Tools 项目中使用 lnk 文件解析器。

请参阅http://jafat.sourceforge.net上的 lnk-parse-1.0.pl

似乎没有没有依赖关系(尤其是不糟糕的 Windows 材料)。语法很简单,链接文件在标准输出中变成了一个简单的文本。

于 2013-11-08T08:44:21.537 回答