2011-09-09 1 views
0

私の外付けハードドライブは最近、友人に貸し出したときにrecycler.exeウイルスの影響を受けました。ウイルスは外部ドライブにのみ影響します。これは、作成したEXEファイルを介して、フォルダをそのフォルダへのショートカットに変更します。バッチ内のショートカットターゲットを変更するためのスクリプト?

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

問題: たとえば、以前は「Anime」という名前のフォルダがありました。今、私は、次のターゲットとそのフォルダにリンクするショートカットがあります。

%のWINDIR%\ SYSTEM32 \ CMD.EXE/C「%でcd%のRECYCLERを開始894133bf.exe & & \の%windir%\ explorer.exeの% 894133bf.exe \ RECYCLER \%アニメ

ウイルスはまた、フォルダ(およびファイル)を作成しCDやショートカットは(上で見た)そのEXEファイルを介してリンクされている。

私はバッチファイルを希望ターゲットパスを に変換するK:\ Anime

この方法では、ショートカットを直接ファイルにリンクできます。私のハードドライブを取り戻すと、ウイルスとフォルダはNortonによって削除されました。ただし、ショートカットは残っており、ターゲットパスを変更しないと機能しません。私はショートカットに変換された私のハードドライブ上の37以上のフォルダを持っているので

、私は多分、スクリプトがやって参考になることを考えていた次

  1. がショートカットからファイル名を抽出
  2. Kにターゲットを変更し、ファイル名
  3. からの.lnkを削除:\ {ショートカット名}次のフォルダとループに
  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 
関連する問題