Ich habe erfolgreich eine Batch-Datei verwendet, die die Gesamtzahl der Dateien und Verzeichnisse in einem Stammverzeichnis zählt.Dateien und Verzeichnisse auf jeder Verzeichnisebene zählen aus einer Batch-Datei
Verzeichnisstruktur:
Hier ist das aktuelle Skript: (bekommt die Anzahl der Dateien und Ordner Unterordner bis zum n-ten Kind zurückkehrt).
@echo off
set "drive=D:\Download\app"
for /d %%r in ("%drive%\*") do (
echo Path: %%~fr
for /F "tokens=1,2,3 delims= " %%i in ('dir/a/s %%~fr ^| find /i "bytes"') do if "%%j"=="File(s)" (
set numfiles=%%i
)ELSE (
for /f %%a in ('dir /b /s /ad %%~fr ^|find /c /v "" ') do set numfolders=%%a)
echo Files: %numfiles%
echo Folds: %numfolders%
)
Zuerst wird das Programm gibt die Gesamtzahl der Dateien und Gesamtzahl der Ordner im Stammverzeichnis und dann geht es zum ersten Unterordner und gibt das gleiche für sich ganzen Baum ist, dann ist es an den bewegt nächste Ordner auf dieser Ebene usw.
EDIT
ich das Teil getan habe, wo es auf 1 Ebene des Unterordner gehen und die Gesamtanzahl der Dateien und Ordner bekommen, aber ich will es auf bis N Anzahl der Unterordner, was bedeutet, dass es Gesamtanzahl für jeden einzelnen Ordner im Stammverzeichnis ausgeben sollte.
Hier ist der erweiterte Code.
@echo off
setLocal EnableDelayedExpansion
set "drive=C:\Users\%USERNAME%\Downloads\Sandukchi"
set numfiles=
set numfolders=
set count=0;
for /d %%r in ("%drive%\*") do (
echo %%r
SET /A count=count + 1
for /d %%a in ("%%r\*") do set modifiedDate=%%~ta
for /F "tokens=1,2,3 delims= " %%i in ('dir/a/s "%%r\*" ^| find /i "File(s)"') do set fileSizeBytes=%%k
for %%* in ("%%r") do set folderName=%%~nx*
for /F "tokens=1,2,3 delims= " %%i in ('dir/a/s "%%r\*" ^| find /i "bytes"') do if "%%j"=="File(s)" (
set numfiles=%%i
)ELSE (
for /f %%a in ('dir /b /s /ad "%%r\*" ^|find /c /v "" ') do set numfolders=%%a)
echo Last Modified Date: !modifiedDate!
echo Folder Size: !fileSizeBytes! KB
echo Total Number of Files: !numfiles!
echo Total Number of Folders: !numfolders!
(
echo !count! %%r !folderName! !modifiedDate! Total Size !fileSizeBytes!KB Total Files !numfiles! Total Folder !numfolders!
echo.
)>>output.txt
)
Es ist perfekt funktioniert, aber es ist nicht Gesamtzahl der Unterverzeichnisse zeigt. es zeigt weiter -2. – Ebadali
Dies bedeutet, dass "DCNT" nicht inkrementiert wird.Es könnte sein, dass '%% p' niemals auf'