Forfiles
Forfiles
Wählt Dateien in einem Ordner oder einer Struktur für die Batchverarbeitung aus.
Syntax
forfiles [/p Pfad] [/m Suchmaske] [/s] [/c Befehl] [/d[{+ | -}] [{MM/TT/JJJJ | TT}]]
Parameter
- /p Pfad
- Gibt den Pfad an, in dem die Suche beginnen soll. Der Standardordner ist das aktuelle Arbeitsverzeichnis, das Sie durch Eingabe eines Punktes (.) angeben.
- /m Suchmaske
- Sucht Dateien gemäß den Angaben in Suchmaske. Die Standardsuchmaske ist *.*.
- /s
- Gibt an, dass forfiles auch Unterverzeichnisse durchsuchen soll.
- /c Befehl
- Führt den angegebenen Befehl für jede Datei aus. Befehlszeichenfolgen, die Leerzeichen enthalten, müssen in Anführungszeichen eingeschlossen werden. Der Standardbefehl ist "cmd /c echo @file".
- /d[{+ | -}] [{TT/MM/JJJJ | TT}]
- Wählt Dateien aus, deren Datum größer oder gleich (+) bzw. kleiner oder gleich (-) dem angegebenen Datum ist, wobei TT/MM/JJJJ dem angegebenen Datum und TT dem aktuellen Datum abzüglich TT Tagen entspricht. Wenn Sie + oder - nicht angeben, wird + verwendet. Der gültige Bereich für TT ist 0 - 32.768.
- /?
- Zeigt an der Eingabeaufforderung Hilfe an.
Hinweise
-
Forfiles wird am häufigsten in Batchdateien verwendet.
-
Forfiles /s ist mit dir /s vergleichbar.
-
In der folgenden Tabelle sind die Variablen aufgelistet, die Sie in der Befehlzeichenfolge /cBefehl verwenden können.
Variable Beschreibung @file
Dateiname
@fname
Dateiname ohne Erweiterung
@ext
Dateinamenerweiterung
@path
Vollständiger Pfad der Datei
@relpath
Relativer Pfad der Datei
@isdir
Ergibt TRUE, wenn ein Dateityp ein Verzeichnis ist; andernfalls wird sie als FALSE ausgewertet
@fsize
Dateigröße in Bytes
@fdate
Datum der letzten Änderung der Datei
@ftime
Uhrzeit der letzten Änderung der Datei
-
Mithilfe von forfiles können Sie einen Befehl für mehreren Dateien ausführen oder Argumente an mehrere Dateien übergeben. So könnten Sie z. B. den Befehl TYPE für alle Dateien in einer Struktur ausführen, die die Erweiterung TXT aufweisen. Eine andere Möglichkeit wäre, bei jeder Ausführung einer Batchdatei (*.bat) auf Laufwerk C:\ den Dateinamen Eingabe.txt als erstes Argument zu verwenden.
-
Mit forfiles können Sie folgende Operationen ausführen:
-
Auswählen von Dateien anhand eines absoluten oder relativen Datums (mithilfe von /d).
-
Erstellen einer Archivstruktur aus Dateien mithilfe von Variablen wie z. B. @fsize (Dateigröße) und @fdate (Dateidatum).
-
Unterscheiden zwischen Dateien und Verzeichnissen mithilfe der Variable @isdir.
-
Formatieren der Ausgabe durch Einbeziehen von Sonderzeichen in die Befehlszeile und Einschließen der Zeichen in den Hexadezimalcode 0xHH.
-
Auswählen von Dateien anhand eines absoluten oder relativen Datums (mithilfe von /d).
-
Durch Forfiles wird das Flag zum rekursiven Durchlaufen von Unterverzeichnissen für Tools implementiert, die ausschließlich zur Verarbeitung einer einzigen Datei dienen.
Beispiele
Um alle Batchdateien auf Laufwerk C: aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.bat /c"cmd /c echo @file ist eine Batchdatei"
Um alle Verzeichnisse auf Laufwerk C: aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.* /c"cmd /c if @isdir==true echo @file ist ein Verzeichnis"
Um alle Dateien auf Laufwerk C: aufzulisten, die älter als 100 Tage sind, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file : Datum >= 100 Tage"
Um alle Dateien auf Laufwerk C: aufzulisten, die vor dem 1. Januar 1993 erstellt wurden, und dann für diese Dateien die Meldung "Datei ist ziemlich alt!" anzuzeigen, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.* /dt-01011993 /c"cmd /c echo @file ist ziemlich alt!"
Um alle Erweiterungen aller Dateien auf Laufwerk C: im Spaltenformat aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.* /c "cmd /c echo Erweiterung von @file ist 0x09@ext0x09"
Um alle Batchdateien auf Laufwerk C: aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m *.bat /c "cmd /c echo @file ist eine Batchdatei"
Um alle Verzeichnisse auf Laufwerk C: aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m *.* /c "cmd /c if @isdir==true echo @file ist ein Verzeichnis"
Um alle Dateien auf Laufwerk C: aufzulisten, die älter als 100 Tage sind, geben Sie Folgendes ein:
forfiles /p c:\ /s /m *.* /d t-100 /c "cmd /c echo @file : Datum >= 100 Tage"
Um alle Dateien auf Laufwerk C: aufzulisten, die vor dem 1. Januar 1993 erstellt wurden, und dann für diese Dateien die Meldung "Datei ist ziemlich alt!" anzuzeigen, geben Sie Folgendes ein:
forfiles /p c:\ /s /m *.* /d t-01011993 /c "cmd /c echo @file ist ziemlich alt!"
Um alle Erweiterungen aller Dateien auf Laufwerk C: im Spaltenformat aufzulisten, geben Sie Folgendes ein:
forfiles /p c:\ /s /m*.* /c "cmd /c echo Erweiterung von @file ist 0x09@ext0x09"
Formatierungslegende
| Format | Bedeutung |
|---|---|
|
Kursiv |
Informationen, die der Benutzer bereitstellen muss |
|
Fett |
Elemente, die der Benutzer genau so wie dargestellt eingeben muss |
|
Auslassungspunkte (...) |
Parameter, die mehrmals in einer Befehlszeile wiederholt werden können |
|
Zwischen eckigen Klammern ([]) |
Optionale Elemente |
|
Zwischen geschweiften Klammern ({}); Optionen durch Verkettungszeichen (|) voneinander getrennt. Beispiel: {gerade|ungerade} |
Eine Gruppe von Auswahlmöglichkeiten, aus denen der Benutzer eine Option auswählen muss. |
|
|
Code oder Programmausgabe |

