【问题标题】:Script for changing shortcut targets in a batch?批量更改快捷方式目标的脚本?
【发布时间】:2011-09-09 18:30:40
【问题描述】:

我的外置硬盘最近在我借给朋友时受到了 recycler.exe 病毒的影响。该病毒仅影响外部驱动器。它通过它创建的 EXE 文件将文件夹更改为这些文件夹的快捷方式。

我正在寻找将所有快捷方式目标更改为 K:\{shortcut name} 的脚本。但是,我不知道脚本,在过去两天我尝试学习脚本时,我不确定应该使用哪一种。 VBScript 似乎是最好的选择,但这只是我的意见。

问题: 例如,之前我有一个名为“Anime”的文件夹。现在我有一个链接到该文件夹​​的快捷方式,目标如下:

%windir%\system32\cmd.exe /c "start %cd%RECYCLER\894133bf.exe &&%windir%\explorer.exe %cd%Anime

病毒还会创建一个文件夹(和文件)\RECYCLER\894133bf.exe,并且快捷方式通过该 EXE 文件链接(如上所示)。

我想要一个批处理文件来将目标路径转换为: K:\动漫

这样快捷方式可以直接链接到文件。当我拿回硬盘时,诺顿删除了病毒和文件夹。但是,快捷方式仍然存在,除非我更改目标路径,否则它们不起作用。

由于我的硬盘驱动器上有超过 37 个文件夹已转换为快捷方式,我想也许一个脚本会有助于执行以下操作:

  1. 从快捷方式中提取文件名
  2. 从文件名中删除 .lnk
  3. 将目标更改为 K:\{shortcut name}
  4. 转到下一个文件夹并循环到最后一个文件夹

我在这里遇到了一个提取文件名的脚本: http://blogs.technet.com/b/heyscriptingguy/archive/2006/05/30/how-can-i-extract-just-the-file-name-from-the-full-path-to-the-file.aspx

但是,我不知道如何将它放在一个循环中为每个文件夹执行此操作。

任何帮助将不胜感激。非常感谢。

【问题讨论】:

    标签: vbscript virus


    【解决方案1】:

    For 循环中的objFolder.Name 是它所遍历的每个文件夹的字符串。

        Option Explicit
        Dim strFolderToSearch, objFSO, objRootFolder, objFolder, colSubfolders, strOutput
    
        strFolderToSearch = InputBox("Enter Path:")
    
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objRootFolder = objFSO.GetFolder(strFolderToSearch)
        Set colSubfolders = objRootFolder.SubFolders
    
        For Each objFolder in colSubfolders
             strOutput = strOutput & objFolder.name
             strOutput = strOutput &  vbCrLf
             MsgBox StrOutput
        Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2014-10-06
      • 1970-01-01
      • 2018-07-13
      相关资源
      最近更新 更多