Ich versuche, eine Batchdatei in Windows zu erstellen, um alle Dateien im aktuellen Verzeichnis zu löschen, jedoch ohne 4 Dateierweiterungen (log, sdb, sdk, bat).
Ich habe den Befehl Forfiles unter Windows versucht, aber das löscht alles in meinem aktuellen Ordner (sogar die Bat-Datei). Mein Befehl ist:
%Vor%Wie kann ich es zum Laufen bringen?
Vielen Dank!
\
maskiert werden
IF /I
(case insensitive) -Option Dies sollte funktionieren
%Vor%Aber das obige ist sehr langsam, und es ist sicher eine Menge zu tippen.
Das Folgende ist viel einfacher und schneller.
%Vor% Wenn ROBOCOPY
für Sie verfügbar ist:
Das heißt, Sie erstellen ein temporäres Unterverzeichnis und verschieben die zu löschenden Dateien (das ist schnell, da sich das Zielverzeichnis auf demselben Laufwerk befindet und nur die Dateinamen verschoben werden, nicht der Inhalt der Dateien) ), dann lösche das Unterverzeichnis.
Das ist ungefähr so einfach wie ich dieses Skript bekommen könnte. Sie wollten die Makrodateien (.dqy) behalten, aber alle anderen, die älter als 14 Tage sind, rekursiv löschen.
Ich bin auf dieses Thema gestoßen und habe nach einer Möglichkeit gesucht, Hunderte von Dateien zu löschen, die von einem Virus erstellt wurden. Keine der Lösungen funktionierte wirklich für mich, also habe ich herausgefunden, wie man es von einer Kommandozeile aus macht. Ich brauchte nur 2 Erweiterungen (Mail-Archiv). Das hat den Trick gemacht:
%Vor%Ich benutze das / R, um rekursiv zu arbeiten: schau in alle Unterordner. Das% ~ xf betrachtet nur die Erweiterung (aus irgendeinem Grund funktionierte es nicht ohne es). Ich benutze die Anführungszeichen "% f" bei dem Löschbefehl, um die langen Namen von Fenstern mit Leerzeichen (insbesondere in Ordnernamen) abzudecken. Aus irgendeinem Grund hat das Hinzufügen von Leerzeichen vor und nach dem == zu Fehlern geführt.
Tags und Links cmd batch-file