[CMD] FORFILES

Eure Tipps zu nützlichen Programmen und Links

Moderator: jNizM

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

[CMD] FORFILES

27 Mar 2017, 13:59

Im Forum gesucht und nicht beschrieben gefunden - ein tool welches Teil des Befehlsatzes von cmd.exe ist.
Microsoft proudly presents: FORFILES

Code: Select all

FORFILES [/P Pfadname] [/M Suchmaske] [/S]
         [/C Befehl] [/D [+ | -] {dd.MM.yyyy | TT}]

Beschreibung:
    Wählt eine Datei (oder einen Satz von Dateien) und führt einen
    Befehl auf dieser Datei aus. Dies ist für Batchaufträge hilfreich.

Parameterliste:
    /P    Pfadname      Bestimmt den Pfad, auf dem die Suche gestartet
                        wird. Standardordner ist der zurzeit
                        verwendete Ordner (.).

    /M    Suchmaske     Sucht nach Dateien laut einer Suchmaske.
                        Die Standardsuchmaske ist "*".

    /S                  Durchsucht Unterverzeichnisse
                        rekursiv, wie z. B. "DIR /S".

    /C    Befehl        Bestimmt den für jede Datei auszuführenden Befehl.
                        Befehlszeichenfolgen sollten in doppelten
                        Anführungszeichen eingeschlossen werden.

                        Der Standardbefehl ist "cmd /c echo @file".

                        Folgende Variablen können in der
                        Befehlszeichenfolge verwendet werden:
                        @file    - Zeigt den Namen der Datei an.
                        @fname   - Zeigt den Dateinamen ohne
                                   Erweiterung an.
                        @ext     - Zeigt nur die
                                   Dateierweiterung an.
                        @path    - Zeigt den vollständigen Dateipfad an.
                        @relpath - Zeigt den relativen
                                   Dateipfad an.
                        @isdir   - Zeigt "TRUE" an, falls ein Dateityp ein
                                   Verzeichnis ist und "FALSE" für Dateien.
                        @fsize   - Zeigt die Dateigröße in Bytes
                                   an.
                        @fdate   - Zeigt das letzte Änderungsdatum
                                   der Datei an.
                        @ftime   - Zeigt die letzte Änderungszeit der
                                   Datei an.

                        Verwenden Sie Hexadezimalcode für Zeichen
                        im Format 0xHH, um spezielle Zeichen in der
                        Befehlszeile miteinzubeziehen (z. B. 0x09 für
                        Tabbstop). Interne Befehle für cmd.exe
                        sollten auf "cmd /c" folgen.

    /D    Datum         Wählt Dateien mit einem Änderungsdatum größer
                        oder gleich (+), oder weniger oder gleich
                        (-), das angegebene Datum mit Format
                        "dd.MM.yyyy"; oder wählt Dateien, dessen letztes
                        Änderungsdatum größer oder gleich (+) dem
                        heutigen Datum plus "tt" Tagen oder oder weniger
                        oder gleich (-) heute minus "tt" Tagen. Gültige
                        Werte für "tt" sind Zahlen zwischen 0 und 32768.
                        Ohne Angabe wird "+" standardmäßig
                        verwendet.

    /?                  Zeigt diese Hilfe an.

Beispiele:
    FORFILES /?
    FORFILES
    FORFILES /P C:\WINDOWS /S /M DNS*.*
    FORFILES /S /M *.txt /C "cmd /c type @file | more"
    FORFILES /P C:\ /S /M *.bat
    FORFILES /D -30 /M *.exe
             /C "cmd /c echo @path 0x09 wurde vor 30 Tagben geändert"
    FORFILES /D 01.01.2001
             /C "cmd /c echo @fname ist seit dem 01.01.2001 neu"
    FORFILES /D +27.3.2017 /C "cmd /c echo @fname ist seit heute neu"
    FORFILES /M *.exe /D +1
    FORFILES /S /M *.doc /C "cmd /c echo @fsize"
    FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
User avatar
TheDewd
Posts: 1510
Joined: 19 Dec 2013, 11:16
Location: USA

Re: [CMD] FORFILES

27 Mar 2017, 15:43

Löschen Sie die Testdatei, wenn es 5 Tage alt oder älter ist:
FORFILES /m testfile.txt /c "cmd /c Del testfile.txt " /d -5

Finde .xls Datei, die zuletzt geändert wurde vor 30 Tagen oder älter:
FORFILES /M *.xls /C "cmd /c echo @path Wurde vor 30 Tagen gewechselt" /D -30

Liste der Größe aller .doc Dateien:
FORFILES /S /M *.doc /C "cmd /c echo @fsize"

Return to “Tooltime”

Who is online

Users browsing this forum: No registered users and 22 guests