2011-09-09 66 views
0

當我將它借給朋友時,我的外部硬盤驅動器最近受到recycler.exe病毒的影響。該病毒隻影響外部驅動器。它通過它創建的EXE文件將文件夾更改爲這些文件夾的快捷方式。用於批量更改快捷方式目標的腳本?

我在搜索腳本以將所有快捷方式目標更改爲K:\ {快捷方式名稱}。但是,我不知道腳本,並且在過去兩天我試圖學習腳本,但我不確定我應該使用哪一種腳本。 VBScript似乎是最好的選擇,但這只是我的看法。

問題: 例如,之前我有一個名爲'Anime'的文件夾。現在我有一個快捷方式鏈接到該文件夾​​具有以下目標:

%WINDIR%\ SYSTEM32 \ CMD.EXE/C「開頭%CD%RECYCLER \ 894133bf.exe & &%WINDIR%\ explorer.exe的% CD%動漫

該病毒還會創建一個文件夾(和文件)\ RECYCLER \ 894133bf.exe和快捷方式通過該EXE文件(上面看到的)鏈接。

我想一個批處理文件將目標路徑轉換爲: K:\ Anime

這種方式的快捷方式可以直接鏈接到文件。當我拿回我的硬盤時,病毒和文件夾被諾頓刪除。但是,快捷方式仍然存在,除非更改目標路徑,否則它們不起作用。

因爲我有我的硬盤驅動器已轉換爲快捷方式超過37文件夾,我在想,也許一個腳本將是有益的執行以下操作:

  1. 從快捷提取的文件名
  2. 去除文件名
  3. 更改目標的.lnk到K:\ {快捷方式名稱}
  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

不過,我不知道如何把它在一個循環中這樣做對每個文件夾。

任何幫助將不勝感激。非常感謝你。

回答

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 
相關問題