Bat-Datei: Befehl ändern Sie nur die Ordner-Attribute, die nicht rekursiv

Es ist ein virus in unserem Netzwerk, das setzt alle root-Verzeichnisse Attribute hidden & system-auf-usb-flash-Laufwerke und erstellt lnk-Dateien, die zu laufen cmd.exe, virus selbst und dann Verzeichnisse öffnen, so dass Heilung solcher Laufwerke verwende ich die Befehle:

attrib -s -h -r /d /s
del /q /s *.lnk
rd /q /s recycler

Aber es gibt ein problem: der Befehl "attrib -s -h -r /d /s" verarbeitet alle Dateien und Verzeichnisse rekursiv und wenn es viele sind dauert es zu lange (es sieht aus wie Windows erstellt zunächst die vollständige Datei-Liste und beginnt dann verarbeitet alles).

Gibt es eine Möglichkeit zu verarbeiten, nur Verzeichnisse, KEINE Dateien und nicht rekursiv mit einer bat-Datei?

Wie in perl:

opendir D, '.';
while($_ = readdir D){
    if(-d $_){
        #do something
        }
    }
closedir D;

Danke.

--
UPD: 2012-01-31, die Lösung:

for /f "delims=" %i in ('dir /ad /ah /b') do @attrib -r -s -h -a "%i"

(ersetzen Sie %i durch %%i zur Verwendung in batch-Dateien)

  • Wenn das virus wirkt sich nur auf die root-Verzeichnisse, warum sind Sie der Verarbeitung aller Dateien und Verzeichnisse?
  • Weil attrib Befehl nicht verwenden filter wie "nur die Verzeichnisse aus dem aktuellen Verzeichnis", das ist, warum ich diese Frage gestellt.
Schreibe einen Kommentar