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>}]]

Die Parameter

Parameter BESCHREIBUNG
/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 die forfiles Befehl 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 mit einem Datum der letzten Änderung später als oder gleich (+) oder älter als (-) das angegebene Datum aus, wobei Datum im Format MM/TT/JJJJ liegt.
  • 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 eine beliebige Zahl im Bereich 0 bis 32.768 enthalten. Wenn kein Zeichen angegeben ist, wird standardmäßig + verwendet.
/? Zeigt den Hilfetext im cmd-Fenster an.

Bemerkungen

  • Der Befehl forfiles /S ähnelt 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 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 ausführen oder Argumente an mehrere Dateien übergeben. Sie können z. B. den befehl Typ 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 nach einem absoluten Datum oder einem relativen Datum 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 in 0xHH- Format verwenden (z. B. 0x09 für eine Registerkarte).

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

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."

Um den Text Datei anzuzeigen, ist für jede der Dateien im aktuellen Verzeichnis veraltet, die älter als der 1. Januar 2007 sind, geben Sie Folgendes ein:

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"