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:
|
/? | Zeigt den Hilfetext im CMD-Fenster an. |
Hinweise
Der Befehl
forfiles /S
ist vergleichbar mitdir /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"