用于更改批处理中快捷方式目标的脚本?

时间:2011-09-09 18:30:40

标签: vbscript virus

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

我正在搜索脚本以将所有快捷方式目标更改为 K:\ {快捷名称} 。但是,我不知道脚本,在最近两天我尝试学习脚本,我不确定应该使用哪一个。 VBScript似乎是最好的选择,但这只是我的观点。

问题: 例如,早些时候我有一个名为'动漫'的文件夹。现在我有一个快捷方式链接到该文件夹​​,其中包含以下目标:

%windir%\ system32 \ cmd.exe / c“启动%cd%RECYCLER \ 894133bf.exe&&%windir%\ explorer.exe%cd%动漫

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

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

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

由于我的硬盘驱动器上有超过37个已转换为快捷方式的文件夹,我当时认为脚本可能对您有所帮助:

  1. 从快捷方式中提取文件名
  2. 从文件名中删除.lnk
  3. 将目标更改为 K:\ {快捷名称}
  4. 转到下一个文件夹并循环直到最后一个文件夹
  5. 我遇到了一个脚本来提取文件名: 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

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

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

1 个答案:

答案 0 :(得分:0)

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