0

最近、外付けハード ドライブを友人に貸したところ、recycler.exe ウイルスの影響を受けました。このウイルスは外付けドライブのみに影響を与えます。作成した EXE ファイルを介して、フォルダーをそれらのフォルダーへのショートカットに変更します。

すべてのショートカット ターゲットをK:\{shortcut name}に変更するスクリプトを探しています。しかし、私はスクリプトを知りません。この 2 日間、スクリプトを学ぼうとしましたが、どちらを使用すればよいかわかりません。VBScript が最良の選択肢のようですが、それは私の意見です。

問題: たとえば、以前に「Anime」というフォルダがありました。これで、次のターゲットを持つそのフォルダーにリンクするショートカットが作成されました。

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

このウイルスはフォルダ (およびファイル) \RECYCLER\894133bf.exeも作成し、ショートカットはその EXE ファイルを介してリンクされます (上記を参照)。

ターゲット パスをK:\Animeに変換するバッチ ファイルが必要です。

このようにして、ショートカットはファイルに直接リンクできます。ハードドライブが戻ってきたときに、ノートンによってウイルスとフォルダが削除されました。ただし、ショートカットは残り、ターゲット パスを変更しない限り機能しません。

ショートカットに変換されたハード ドライブに 37 個以上のフォルダーがあるため、次の操作を行うスクリプトが役立つのではないかと考えていました。

  1. ショートカットからファイル名を抽出する
  2. ファイル名から .lnk を削除する
  3. ターゲットをK:\{ショートカット名}に変更する
  4. 次のフォルダに移動し、最後のフォルダまでループします

ここでファイル名を抽出するスクリプトに出くわしました: http://blogs.technet.com/b/heyscriptingguy/archive/2006/05/30/how-can-i-extract-just-the-file-name-from -ファイルへのフルパス.aspx

しかし、それをフォルダごとに行うためにループに入れる方法がわかりません。

どんな助けでも大歓迎です。どうもありがとうございました。

4

1 に答える 1

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
于 2011-09-09T18:40:37.493 に答える