24 lines
1.5 KiB
Batchfile
24 lines
1.5 KiB
Batchfile
@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="
|