@FILES[[/S[[+]n]] [range...][/H] filename[,[{+|-}]rhsadecijopt]]: Gibt die Anzahl der Dateien innerhalb des Bereichs zurück , die mit filename übereinstimmen und die angegebenen Attribute haben. Dateiname kann Wildcards und Include-Listen enthalten . Gibt 0 zurück, wenn keine Dateien übereinstimmen. Um Dateien in mehreren Verzeichnissen zu prüfen, verwenden Sie @FILES einmal für jedes Verzeichnis und addieren Sie die Ergebnisse mit @EVAL.
Der Dateiname muss in Anführungszeichen stehen, wenn er Leerzeichen oder Sonderzeichen enthält.
Die Parameter range und attribute, falls vorhanden, definieren die Eigenschaften der Dateien, die in das Ergebnis aufgenommen werden, wie unter Dateiauswahl angegeben . Es können mehrere Bereichsparameter enthalten sein, jedoch nicht mehr als je ein Parameter für den Beschreibungsbereich, den Größenbereich, den Datumsbereich und den Zeitbereich. Die Bereichsparameter müssen vor dem Dateinamen stehen. Ausschlussbereiche werden nicht unterstützt.
Wenn Sie das optionale Argument /S angeben, durchsucht @FILES das aktuelle Verzeichnis und alle seine Unterverzeichnisse nach passenden Dateien. Wenn Sie nach dem /S eine Zahl angeben, beschränkt @FILES die Rekursion in den Unterverzeichnissen auf diese Zahl. (Wenn Sie zum Beispiel einen Verzeichnisbaum "\a\b\c\d\e" haben, wird /S2 nur die Verzeichnisse "a", "b" und "c" betreffen).
Wenn Sie nach dem /S ein + gefolgt von einer Zahl angeben , zählt @FILES keine Dateien, bis es diese Tiefe im Unterverzeichnisbaum erreicht hat. Wenn Sie zum Beispiel einen Verzeichnisbaum \a\b\c\d\ehaben , zählt /S+2 nichts in \a oder \a\b.
Wenn Sie das optionale Argument/H angeben, berücksichtigt @FILES die Verzeichniseinträge "." und ".." nicht bei der Zählung.
Beispiele:
echo %@files[/[s2k,3k] *.txt]
number of files with extension txt in the current directory with size at least 2000 bytes and at most 3000 bytes
echo %@files[*,d]
number of subdirectories
echo %@files[/[d-365] %windir\w*.exe;w*.dll]
number of files at most 365 days old in the Windows directory, with extension EXE or DLL, and name beginning with w