@echo off & setlocal & set Fkilo=0& title Ordnergroessen :: :: if "%~1"=="" (set "pfad=%~dp0" ) else set "pfad=%~1" if not "%pfad:~-1%" == "\" set "pfad=%pfad%\" for /d %%i in ("%pfad%*.*") do for /f "tokens=1-3" %%a in ('dir "%%i" /a /s /-c ^|findstr "Datei(en)"') do set "..?%%~i=%%c" for /f "tokens=2,3 delims=?=" %%i in ('set.. 2^>nul') do (echo %%i hat: %%j bytes& set /a folders + = 1 &call :rechner %%j) echo Gesamtgroesse fuer %pfad% if defined folders (echo %Fpeta%%Fgiga%%Fkilo% bytes& goto :eof ) else echo "%pfad%" enthaelt keine Ordner!& goto :eof :rechner set /a gignr = 0 , petnr = 0 set alls=%1 if %alls% gtr 999999 (set giga=%alls:~ 0, -6%& set /a gignr + = 1 , kilo = 1%alls:~-6%) else (set /a kilo = %alls:~-6% , giga = 0 , peta = 0 & goto :woutgig ) if %giga% gtr 999999 (set peta=%giga:~ 0, -6%& set /a petnr + = 1 , giga = 1%giga:~-6%) else (set /a giga = %giga:~-6% , peta = 0) :woutgig set Falls=%Fpeta%%Fgiga%%Fkilo% if %Falls% gtr 999999 (set Fgiga=%Falls:~ 0, -6%& set /a Fkilo = 1%Falls:~ -6% + kilo , gignr + = 1) else (set /a Fkilo = %Falls% + kilo , Fgiga = 0 , Fpeta = 0 ) if %Fgiga% gtr 999999 (set Fpeta=%Fgiga:~ 0, -6%& set /a Fgiga = 1%Fgiga:~ -6% + giga - gignr + %Fkilo:~ 0, -6% 2>nul , petnr + = 1) else (set /a Fgiga = %Fgiga% + giga - gignr + %Fkilo:~ 0, -6% 2>nul, Fpeta = 0 ) if %Fpeta% gtr 0 set /a Fpeta = Fpeta + peta - petnr + %Fgiga:~ 0, -6% , set Fkilo=%Fkilo:~ -6% if %Fgiga% == 0 (set "Fgiga=") else set Fgiga=%Fgiga:~ -6% if %Fpeta% == 0 set "Fpeta="