Verwenden Sie Forfiles, um Dateien nach Alter zu verarbeiten
- Kategorie: Windows
Es ist immer gut, etwas Befehlszeilenmagie zu kennen, da es manchmal einfacher ist, Befehle auf diese Weise zu verarbeiten.
Diese Anleitung zeigt die Forfiles Befehl in Windows Vista und Windows 7 (Update: Auch in neueren Windows-Versionen verfügbar).
Forfiles können Dateien basierend auf Namen, Dateierweiterungen und Alter verarbeiten. Es ist beispielsweise möglich, alle Dokumente in einem Verzeichnis zu finden, die älter als 20 Tage sind, oder alle Dokumente in c: Dokumenten, die seit einem bestimmten Datum geändert wurden.
Der Befehl forfiles kann mit Verarbeitungsoptionen gekoppelt werden, um diese Dateien zu löschen oder eine Liste aller Dateien zu erstellen, die den Filtern entsprechen. Schauen wir uns den Befehl forfiles genauer an.
FORFILES [/ P Pfadname] [/ M Suchmaske] [/ S] [/ C Befehl] [/ D [+ | -] DD / MM / JJJJ ]
Beschreibung: Wählt eine Datei (oder einen Satz von Dateien) aus und führt einen Befehl für diese Datei aus. Dies ist hilfreich für Stapeljobs.
Parameterliste:
- / P Pfadname Gibt den Pfad an, zu dem die Suche gestartet werden soll. Der Standardordner ist das aktuelle Arbeitsverzeichnis (.).
- / M Suchmaske Durchsucht Dateien nach einer Suchmaske. Die Standardsuchmaske ist '*'.
- / S Weist Forfiles an, in Unterverzeichnisse zurückzukehren. Wie 'DIR / S'.
- / C-Befehl Gibt den Befehl an, der für jede Datei ausgeführt werden soll. Befehlszeichenfolgen sollten in doppelte Anführungszeichen gesetzt werden. Der Standardbefehl lautet 'cmd / c echo @file'.
Die folgenden Variablen können in der Befehlszeichenfolge verwendet werden:
- @file - gibt den Namen der Datei zurück.
- @fname - gibt den Dateinamen ohne Erweiterung zurück.
- @ext - gibt nur die Erweiterung der Datei zurück.
- @path - Gibt den vollständigen Pfad der Datei zurück.
- @relpath - Gibt den relativen Pfad der Datei zurück.
- @isdir - gibt 'TRUE' zurück, wenn ein Dateityp ein Verzeichnis ist, und 'FALSE' für Dateien.
- @fsize - Gibt die Größe der Datei in Bytes zurück.
- @fdate - Gibt das Datum der letzten Änderung der Datei zurück.
- @ftime - Gibt die zuletzt geänderte Zeit der Datei zurück.
Verwenden Sie den Hexadezimalcode für das Zeichen im 0xHH-Format (z. B. 0x09 für die Registerkarte), um Sonderzeichen in die Befehlszeile aufzunehmen. Vor internen CMD.exe-Befehlen sollte 'cmd / c' stehen.
/ D Datum Wählt Dateien mit einem letzten Änderungsdatum größer oder gleich (+) oder kleiner oder gleich (-) dem angegebenen Datum im Format 'TT / MM / JJJJ' aus. oder wählt Dateien mit einem letzten Änderungsdatum aus, das größer oder gleich (+) dem aktuellen Datum plus 'dd'-Tagen oder kleiner oder gleich (-) dem aktuellen Datum minus' dd 'Tagen ist. Eine gültige 'dd'-Anzahl von Tagen kann eine beliebige Zahl im Bereich von 0 bis 32768 sein.' + 'Wird als Standardzeichen verwendet, wenn nichts angegeben ist.
/? Zeigt diese Hilfemeldung an. Diese Hilfedatei kann durch Eingabe des Befehls forfiles /? Geöffnet werden. in einer Eingabeaufforderung. Drücken Sie Windows-R, geben Sie cmd ein und drücken Sie die Eingabetaste, um die Befehlszeile in Windows zu starten.
Der Befehl forfiles / P c: test / M .doc / S / D -10
Durchsucht das Verzeichnis c: test und alle seine Unterverzeichnisse nach Dateien mit der Erweiterung .doc, die älter als 10 Tage sind.
Der Parameter / p gefolgt von einem Verzeichnis definiert das Startverzeichnis, / s enthält Unterverzeichnisse in der Suche, / m filtert die Dateien und Ordner basierend auf der eingegebenen Zeichenfolge und / D definiert das Datum oder eine Zeitspanne.
Mit dem Befehl / C werden die weiter gefundenen Dateien verarbeitet. Es kann zum Beispiel verwendet werden, um den folgenden Befehl auszuführen: / C 'cmd / c echo @fname'> test.txt
Geben Sie die Namen der gefundenen Dateien wieder und speichern Sie die Ergebnisse in text.txt im selben Verzeichnis.
Der vollständige Befehl sieht dann so aus forfiles / P c: test / M .doc / S / D -10 / C 'cmd / c echo @fname'> test.txt
Eine andere Möglichkeit besteht darin, die Dateien zu löschen, die der Suche entsprechen. Dies erfolgt mit dem Befehl / C 'cmd / c del @File
Es wird jedoch empfohlen, zuerst die Ausgabe zu testen, bevor Sie den Befehl delete ausführen, um sicherzustellen, dass nur die richtigen Dateien gelöscht werden. Erfahrene Benutzer können eine Batchdatei erstellen, um Forfiles regelmäßig auszuführen.