![Löschen Sie alle Dateien im Ordner außer einer Erweiterung (z. B. .idf) mithilfe einer Batchdatei [Duplikat].](https://rvso.com/image/1449522/L%C3%B6schen%20Sie%20alle%20Dateien%20im%20Ordner%20au%C3%9Fer%20einer%20Erweiterung%20(z.%20B.%20.idf)%20mithilfe%20einer%20Batchdatei%20%5BDuplikat%5D..png)
Mein aktueller Code zum Löschen aller Dateien in einem Ordner, die älter als 2 Tage sind, lautet:
forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2
Da ist einer.idfDatei zwischen allen anderen Dateien. Ich möchte alle Dateien außer der einen IDF-Datei löschen. Was muss ich ändern, damit der aktuelle Code die Datei ignoriert? Wenn das nicht möglich ist, ist jeder neue Befehl hilfreich.
Antwort1
Um Ihren Ansatz ein wenig zu verbessern:
forfiles
Mit dem Schalter „ Keep with/d -2
“ können nur ältere Dateien behandelt werden.- Verwenden Sie
for %G
„with“if /I [%~xG] neq [.idf]
, um Dateien mit.idf
der Erweiterung „outzus“ %
Bei Ausführung aus einer Batchdatei alles verdoppeln :%%G
statt%G
usw.- Entfernen Sie
@echo
es erst, wenn die Fehlerbehebung abgeschlossen ist.
Der Befehl:
forfiles /p "C:\Test" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.idf] @echo del /F /Q %G" /d -2
Ressourcen(Pflichtlektüre):
- (Befehlsreferenz)Ein AZ-Index der Windows CMD-Befehlszeile
- (weitere Besonderheiten)Befehlszeilensyntax der Windows CMD-Shell
- (
%~G
usw. Sonderseite)Befehlszeilenargumente (Parameter)