代码之家  ›  专栏  ›  技术社区  ›  dreftymac

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

  •  3
  • dreftymac  · 技术社区  · 17 年前

    问题: C驱动器上有一堆指向J:驱动器的.lnk文件,但J:驱动器不见了,P:驱动器已经取代了它。已经采取了各种技巧来让.lnk文件仍然工作,但这很烦人,是时候解决问题了。

    使用Ruby、Python、WSH。JScript或Perl,你能迭代整个.lnk文件目录树并将其更改为指向p:/*而不是j://*吗?你会怎么做?

    注: 这对我来说并不是完全未知的,但我还是问了这个问题,因为到目前为止,用我发现的方式管理.lnk文件的API似乎太麻烦了,不可能是最著名的方法。这是一个绝望的“一定有更好的方法”类型的问题。

    3 回复  |  直到 14 年前
        1
  •  5
  •   BenAlabaster    17 年前

    在WindowsNT资源工具包中,有一个名为Shortcut.exe的命令行实用程序,据可靠消息,它也将在XP/2000/2003下运行。您可以使用各种命令行开关来修改现有的LNK文件,以指向新的快捷方式。

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

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

        2
  •  2
  •   Program.X    17 年前

    我们发现这个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/等上以管理员身份从命令shell运行它。

    除此之外,工作得很好!

        3
  •  2
  •   MUY Belgium    12 年前

    只需在以下位置使用lnk文件解析器 J.A.F.A.T.取证分析工具档案项目 .

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

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