Das Löschen von Elementen über die Befehlszeile ist ziemlich einfach.
del /options filename.extension
Angenommen, ich möchte alle Dateien löschen, die nicht mit .jpg in einem Ordner enden. Wie würde ich das tun?
Die Sache ist, ich habe eine Software, die alle angegebenen Bilder in .jpg konvertiert, aber die Originale hinterlässt, die ich nicht mehr brauche.
Es wäre viel effizienter, eine einzelne Anweisung auszuführen, als mehrere Anweisungen für jeden unterschiedlichen Dateityp auszuführen.
windows
command-line
KdgDev
quelle
quelle
/s
zu jeder Zeile hinzu, um Dateien rekursiv in Unterverzeichnisse aufzunehmen.Das ist eigentlich ziemlich einfach.
Sie müssen
for
die Dateien durchlaufen und dann einfach nach der Erweiterung suchen:sollte den Trick machen (Code hier ).
quelle
Powershell zur Rettung
In Zeiten von Windows 7/8 ist es der Nachfolger der guten alten Kommandozeile
Del
ist ein Alias fürRemove-Item
. Es gibt verschiedene Optionen wie Rekursion, Einschließen, Ausschließen und Filtern (verwenden Sie diese Option für RegEx).Sie müssen hinzufügen
\*
, um Dateien in einen bestimmten Ordner aufzunehmenquelle
PowerShell.exe -Command "&{Remove-Item C:\MyFolder\* -Exclude '*.jpg'}"
Ich weiß, dass Ihre Frage nicht direkt beantwortet wird, aber haben Sie sich die Optionen Ihres Konverters angesehen, um festzustellen, ob:
oder
quelle
Ich suchte nach einer Möglichkeit, alle Dateien, die NICHT die Erweiterung ".mp3" hatten, in einem Verzeichnis TREE unter Windows 7 (NTFS-Volume) zu finden, das vielleicht 20.000 Dateien in mehreren hundert Verzeichnissen unterschiedlicher Tiefe enthält ... also nach einer Weile Angst, ich benutzte:
Hier wurden die Dateien aufgelistet, die nicht mit der MP3-Datei übereinstimmten, nachdem alle mit der DIR-Befehlsausgabe verbundenen Elemente entfernt wurden. 99% funktionieren ... es sei denn, die nicht übereinstimmende Datei wird als eines der Schlüsselwörter in der Standard-DIR-Ausgabe bezeichnet. Vielleicht gibt es eine Möglichkeit, DIR-Berichte weniger Header- / Zusammenfassungsinformationen zu machen - aber ich habe mich nicht darum gekümmert, da dies den größten Teil des Weges dorthin führte.
quelle
/b
Flag desdir
Befehls.dir /b
listet Dateinamen und Erweiterungen nur im aktuellen Verzeichnis auf,dir /s /b
listet die vollständig qualifizierten Namen aller Dateien im aktuellen und allen Unterverzeichnissen auf. In den Rohrleitungenfind /v
statt einerfor
Schleife ist eine nette Geste Ich erinnere mich , müssen würde, aber ich glaube nicht , es funktioniert mitdel
.Eine andere Möglichkeit, alle Dateien zu löschen, die einem Dateinamen entsprechen, ist unten dargestellt. Die for-Schleifenliste enthält alle Dateien und die if NOT-Übereinstimmungen nach Dateiname (ohne Verzeichnisnamen).
quelle