Freigeben über


forfiles

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

Syntax

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

Parameters

Parameter Description
/P <pathname> Gibt den Pfad an, aus dem die Suche gestartet werden soll. Standardmäßig beginnt die Suche im aktuellen Arbeitsverzeichnis.
/M <searchmask> Durchsucht Dateien gemäß der angegebenen Suchmaske. Die Standardmäßige Suchmaske 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 Datum der letzten Änderung innerhalb des angegebenen Zeitrahmens aus:
  • Wählt Dateien aus, deren Datum der letzten Änderung nach oder gleich (+) oder vor oder gleich (-) dem angegebenen Datum liegt, wobei das Datum im gleichen regionalen Format wie Ihr Windows-Gerät angegeben ist, z. B. MM/DD/YYYY für Englisch (USA).
  • Wählt Dateien mit einem Datum der letzten Änderung später als oder gleich (+) das aktuelle Datum plus der angegebenen Anzahl von Tagen oder früher als (-) des aktuellen Datums abzüglich der angegebenen Anzahl von Tagen aus.
  • Gültige Werte für Tage umfassen eine beliebige Zahl im Bereich von 0 bis 32.768. Wenn kein Zeichen angegeben ist, wird standardmäßig + verwendet.
/? Zeigt den Hilfetext im cmd-Fenster an.

Remarks

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

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

    Variable Description
    @FILE File name.
    @FNAME Dateiname ohne Erweiterung.
    @EXT Dateinamenerweiterung.
    @PATH Vollständiger Pfad der Datei.
    @RELPATH Relativer Pfad der Datei.
    @ISDIR Wertet auf TRUE aus, wenn ein Dateityp ein Verzeichnis ist. Andernfalls wird diese Variable als FALSCH ausgewertet.
    @FSIZE Dateigröße in Byte.
    @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 mehrere Dateien ausführen oder Argumente an mehrere Dateien übergeben. Sie können z. B. den Befehl type für alle Dateien in einer Struktur mit der Dateinamenerweiterung .txt ausführen. Alternativ können Sie jede Batchdatei (*.bat) auf Laufwerk C ausführen, wobei der Dateiname als erstes Argument Myinput.txt.

  • Dieser Befehl kann:

    • 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 mithilfe der variablen @ISDIR.

    • 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 einen Tabulator).

  • Dieser Befehl funktioniert durch Implementieren des recurse subdirectories-Flags für Tools, die nur eine einzelne Datei verarbeiten sollen.

Examples

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 Datei im aktuellen Verzeichnis anzuzeigen, die älter als der 1. Januar 2007 ist:

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

Wenn Sie die Dateinamenerweiterungen aller Dateien im aktuellen Verzeichnis im Spaltenformat auflisten und vor der Erweiterung eine Registerkarte hinzufügen möchten, geben Sie Folgendes ein:

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