waRmZip.wsf v1.7 (Nov 2005) Utility to clean up/free up space in a folder (and its subfolders), * compressing files after a certain number of days (with external program) * rotating files after a certain number of days/above a certain size * deleting files and/or empty folders after a certain period of time * moving files to other folders/disks
:: start doing %NB% things call :calsectime set TIME1=%SECTIME% ::(do stuff) :: finished doing %NB% things call :calsectime set TIME2=%SECTIME% set /A TPS=%NB% / ( %TIME2% - %TIME1% ) echo Thoughput = %TPS% things/sec :calcsectime set NOW=%TIME:~0,8% for /F "delims=: tokens=1,2,3" %%f in ( "%NOW%" ) do ( SET /A SECTIME=%%h + %%g * 60 + %%f * 3600 ) goto :EOF
Remarks:
:freespace dir %1 2>&1 | findstr free > %TMPFILE% for /f "tokens=3,4*" %%f in ( %TMPFILE% ) do ( set FREEBYTES=%%f ) set FREEBYTES=%FREEBYTES:.=% set FREEBYTES=%FREEBYTES:,=% set /a FREEMB=%FREEBYTES:~0,-6% goto :end
Some remarks:
call :foldersize c:\temp ... :foldersize if not exist %1 ( echo *** WARNING: folder [%1] does not exist! set MBFOLDER=0 goto :EOF ) dir %1 2>&1 | findstr File > %TMPFILE% for /f "tokens=1,2,3,4*" %%f in ( %TMPFILE% ) do ( set NBFILES=%%f set NBBYTES=%%h ) set NBBYTES=%NBBYTES:.=% set NBBYTES=%NBBYTES:,=% set /a MBFOLDER=%NBBYTES:~0,-6% goto :EOF
Remarks:
DIR and ignore the last 6 numbers, which gives me an approximation in MB.%TMP%\tmp_%USERNAME%.txt is a e.g. good option. :findlabel dir %1 2>&1 | findstr /C:"drive" > %TMPFILE% for /f "tokens=6,7*" %%f in ( %TMPFILE% ) do ( set DRVLABEL=%%f ) set DRVLABEL=%DRVLABEL: =% goto :EOF
Remarks: