Löschen Sie alle Dateien im Ordner außer einer Erweiterung (z. B. .idf) mithilfe einer Batchdatei [Duplikat].

Löschen Sie alle Dateien im Ordner außer einer Erweiterung (z. B. .idf) mithilfe einer Batchdatei [Duplikat].

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:

  • forfilesMit 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 .idfder Erweiterung „outzus“
  • %Bei Ausführung aus einer Batchdatei alles verdoppeln : %%Gstatt %Gusw.
  • Entfernen Sie @echoes 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):

verwandte Informationen