forfiles

Wählt einen Befehl für eine Datei oder mehrere Dateien aus und führt den Befehl aus. Dieser Befehl wird am häufigsten in Batchdateien verwendet.

Syntax

forfiles [/P pathname] [/M searchmask] [/S] [/C command] [/D [+ | -] [{<date> | <days>}]]

Parameter

Parameter BESCHREIBUNG
/P <pathname> Gibt den Pfad an, über den die Suche gestartet werden soll. Die Suche beginnt standardmäßig beginnt im aktuellen Arbeitsverzeichnis.
/M <searchmask> Durchsucht Dateien gemäß der angegebenen Suchmaske. Die Standardsuchmaske ist *.
/S Weist den Befehl forfiles an, rekursiv in Unterverzeichnissen zu suchen.
/C <command> Führt den angegebenen Befehl für jede Datei aus. Befehlszeichenfolgen sollten in doppelte Anführungszeichen eingeschlossen werden. Der Standardbefehl ist "cmd /c echo @file".
/D [{+\|-}][{<date> | <days>}] Wählt Dateien mit einem letzten Änderungsdatum innerhalb des angegebenen Zeitrahmens aus:
  • Wählt Dateien mit einem letzten Änderungsdatum später als oder gleich (+) oder früher als oder gleich (-) dem angegebenen Datum aus, wobei sich das Datum im Format MM/DD/JJJJ vorliegt.
  • Wählt Dateien mit einem letzten Änderungsdatum aus, das später als oder gleich (+) dem aktuellen Datum plus der angegebenen Anzahl von Tagen oder früher als oder gleich (-) dem aktuellen Datum abzüglich der angegebenen Anzahl von Tagen ist.
  • Gültige Werte für Tage umfassen eine beliebige Zahl im Bereich von 0 bis 32.768. Wenn kein Vorzeichen angegeben ist, wird standardmäßig + verwendet.
/? Zeigt den Hilfetext im CMD-Fenster an.

Hinweise

  • Der Befehl forfiles /S ist vergleichbar mit dir /S.

  • Sie können die folgenden Variablen in der Befehlszeichenfolge verwenden, wie durch die Befehlszeilenoption /C angegeben:

    Variable BESCHREIBUNG
    @FILE Dateiname
    @FNAME Dateiname ohne Erweiterung.
    @EXT Dateinamenerweiterung
    @PATH Vollständiger Pfad der Datei.
    @RELPATH Relativer Pfad der Datei.
    @ISDIR Wird als TRUE ausgewertet, wenn ein Dateityp ein Verzeichnis ist. Andernfalls wird diese Variable als FALSE ausgewertet.
    @FSIZE Dateigröße in Bytes.
    @FDATE Datumsstempel der letzten Änderung in der Datei.
    @FTIME Zeitstempel der letzten Änderung in der Datei.
  • Mit dem Befehl forfiles können Sie einen Befehl für mehrere Dateien ausführen oder Argumente an mehrere Dateien übergeben. Sie können beispielsweise den Befehl type für alle Dateien in einer Struktur mit der Dateinamenerweiterung .txt ausführen. Alternativ könnten Sie jede Batch-Datei (*.bat) auf Laufwerk C ausführen, mit dem Dateinamen Myinput.txt als erstes Argument.

  • Dieser Befehl ermöglicht das Ausführen folgender Aktionen:

    • Wählen Sie Dateien anhand eines absoluten Datums oder eines relativen Datums aus, indem Sie den Parameter /d verwenden.

    • Erstellen Sie eine Archivstruktur von Dateien mithilfe von Variablen wie @FSIZE und @FDATE.

    • Unterscheiden Sie Dateien von Verzeichnissen, indem Sie die @ISDIR Variable verwenden.

    • Fügen Sie Sonderzeichen in die Befehlszeile ein, indem Sie den Hexadezimalcode für das Zeichen im Format 0xHH verwenden (z. B. 0x09 für eine Registerkarte).

  • Dieser Befehl implementiert das Flag recurse subdirectories in Tools, die nur für die Verarbeitung einer einzelnen Datei konzipiert sind.

Beispiele

Wenn Sie alle Batchdateien auf Laufwerk C auflisten möchten, geben Sie Folgendes ein:

forfiles /P c:\ /S /M *.bat /C "cmd /c echo @file is a batch file"

Wenn Sie alle Verzeichnisse auf Laufwerk C auflisten möchten, geben Sie Folgendes ein:

forfiles /P c:\ /S /M * /C "cmd /c if @isdir==TRUE echo @file is a directory"

Wenn Sie alle Dateien im aktuellen Verzeichnis auflisten möchten, die mindestens ein Jahr alt sind, geben Sie Folgendes ein:

forfiles /S /M *.* /D -365 /C "cmd /c echo @file is at least one year old."

Geben Sie Folgendes ein, um die Textdatei für jede der Dateien im aktuellen Verzeichnis anzuzeigen, die vor dem 1. Januar 2007 erstellt wurden:

forfiles /S /M *.* /D -01/01/2007 /C "cmd /c echo @file is outdated."

Geben Sie ein, um die Dateinamenerweiterungen aller Dateien im aktuellen Verzeichnis im Spaltenformat aufzulisten und vor der Erweiterung eine Registerkarte hinzuzufügen:

forfiles /S /M *.* /C "cmd /c echo The extension of @file is 0x09@ext"