forfiles

Wählt einen Befehl für eine Datei oder einen Satz von Dateien aus und führt diesen 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, ab dem die Suche gestartet werden soll. Standardmäßig beginnt die Suche 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 umschlossen werden. Der Standardbefehl ist "cmd /c echo @file".
/D [{+\|-}][{<date> | <days>}] Wählt Dateien mit einem Datum der letzten Änderung innerhalb des angegebenen Zeitrahmens aus:
  • Wählt Dateien mit einem Datum der letzten Änderung aus, das höher oder gleich (+) oder früher oder gleich (+-) dem angegebenen Datum ist, wobei datum das Format MM/TT/YYYY auft.
  • Wählt Dateien aus, deren Datum der letzten Änderung nach oder gleich (+) dem aktuellen Datum plus der angegebenen Anzahl von Tagen oder früher 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.

Bemerkungen

  • Der forfiles /S Befehl ähnelt dir /S.

  • Sie können die folgenden Variablen in der Befehlszeichenfolge verwenden, wie in der 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 zu 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 für die Datei.
  • Mit dem Befehl forfiles können Sie einen Befehl für ausführen oder Argumente an mehrere Dateien übergeben. Sie können z. B. den Typbefehl für alle Dateien in einer Struktur mit der .txt Dateinamenerweiterung ausführen. Oder Sie können jede Batchdatei (*.bat) auf Laufwerk C ausführen, bei der der Dateiname Myinput.txt erstes Argument ist.

  • Dieser Befehl kann:

    • Wählen Sie Dateien nach einem absoluten Datum oder einem relativen Datum aus, indem Sie den Parameter /d verwenden.

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

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

    • Schließen Sie Sonderzeichen in die Befehlszeile ein, indem Sie den Hexadezimalcode für das Zeichen im 0xHH-Format verwenden (z. B. 0x09 registerkarte).

  • Mit diesem Befehl wird das -Flag für recurse subdirectories Tools implementieren, die nur für die Verarbeitung einer einzelnen Datei konzipiert sind.

Beispiele

Geben Sie Zum Auflisten aller Batchdateien auf Laufwerk C Ein:

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

Geben Sie Zum Auflisten aller Verzeichnisse auf Laufwerk C Ein:

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

Geben Sie Zum Auflisten aller Dateien im aktuellen Verzeichnis, die mindestens ein Jahr alt sind, Ein:

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

Um anzuzeigen, dass die Textdatei für jede der Dateien im aktuellen Verzeichnis veraltet ist, die älter als der 1. Januar 2007 sind, geben Sie:

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

Um die Dateinamenerweiterungen aller Dateien im aktuellen Verzeichnis im Spaltenformat auflisten und vor der Erweiterung eine Registerkarte hinzufügen zu können, geben Sie:

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

Weitere Verweise