Diese Batchdatei bietet eine Lösung:
@echo off
set "SourceFolder=C:\Temp"
for /F "skip=1 delims=" %%I in ('dir "%SourceFolder%\*" /A-D /B /O-D 2^>nul') do del "%SourceFolder%\%%I"
set "SourceFolder="
Der Befehl DIR gibt eine Liste von nur wegen der Optionen Dateinamen /A-D
(Verzeichniseinträge mit Verzeichnisattribut nicht set) und /B
(bare Format) bestellt nach Datum der letzten Änderung wegen /O-D
, was bedeutet, dass der Name der neuesten modifizierten Datei zuerst ausgegeben wird.
eine Fehlermeldung ausgegeben durch DIR wenn der angegebene Ordner enthält keine Datei durch Umleiten der Fehlermeldung STDERR zu Gerät NUL Verwendung 2>nul
zu hand geschrieben wird unterdrückt. Der Umleitungsoperator >
muss hier mit dem Escape-Zeichen ^
maskiert werden, um als Literalzeichen bei der Verarbeitung der gesamten Befehlszeile durch den Windows-Befehlsinterpreter interpretiert zu werden. Später FOR führt in einem separaten Befehlsprozess im Hintergrund den Befehl dir "%SourceFolder%\*" /A-D /B /O-D 2>nul
aus und erfasst den Ausgang, der in STDOUT geschrieben wurde.
FOR Option skip=1
Ergebnisse in erster Linie der erfassten Ausgangs Überspringen die den Dateinamen der neuesten geänderte Datei bedeutet ignorieren.
FOR Option delims=
deaktiviert die Standard Aufspaltung der eingefangenen Zeilen in den Raum/Tab getrennte Zeichenfolgen als jede gesamte Dateinamen Schleifenvariable I
für die Verwendung durch den Befehl von FOR ausgeführt zugewiesen werden sollte.
DEL löscht die Datei, wenn das überhaupt möglich ist.
Um die verwendeten Befehle und ihre Funktionsweise zu verstehen, öffnen Sie ein Eingabeaufforderungsfenster, führen Sie die folgenden Befehle aus und lesen Sie alle Hilfeseiten, die für jeden Befehl angezeigt werden, sorgfältig durch.
del /?
dir /?
echo /?
for /?
set /?
Lesen Sie auch die Microsoft Artikel über Using Command Redirection Operators.
Suchen Sie nach der neuesten Datei und löschen Sie alle, die nicht diese Datei sind? –
Sie müssen suchen, recherchieren, schreiben und Code selbst ausprobieren. Das Posten einer Datei, die nicht einmal versucht, die von Ihnen benötigte Aufgabe auszuführen, und um das Hinzufügen einer Aufgabe, ist eine direkte Codeanforderung und steht hier nicht zur Verfügung. – Compo
Sie sagen, dass Sie Dateien löschen möchten, daher ist 'rmdir' sinnlos, da es Verzeichnisse löscht ... – aschipfl