king_stiven
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору popalka Вот такое есть решение, корректно считает сумму файлов до 2 с чем то терабайт. Почему то время от время попикивает.) Можно задать промежуток времени созданмя файлов: set month_begin=20070601 set month_end=20070630 где суммируются размеры файлов, созданных с 01 06 2007 до 15 07 2007 Код: @echo off mode con codepage select=1251 > nul set month_begin=20070601 set month_end=20070715 del "%temp%\2.txt" for /f "usebackq tokens=1,2,3,5 delims=. " %%c in (`dir /t:c /s /a:-d`) do ( if %%e%%d%%c GEQ %month_begin% ( if %%e%%d%%c LEQ %month_end% call :folding "%%f" ) ) setlocal enabledelayedexpansion echo !sum!>>"%temp%\2.txt" call 3.bat goto :eof :folding for /f "usebackq tokens=1,2,3,4" %%g in ('%~1') do set /a sum+=%%g%%h%%i%%j echo %sum% if %sum% LSS 0 ( for /f "usebackq tokens=1,2,3,4" %%g in ('%~1') do call 2.bat %%g%%h%%i%%j set big_size=yes ) | 2.bat Код: set /a sum-=%1 echo %sum%>>2.txt set sum=%1 | 3.bat Код: if not defined big_size ( set b=!sum! goto :end ) for /f %%d in (%temp%\2.txt) do ( set number=%%d set second=!number:~-3! set b2=!second:~0,1! if !b2! EQU 0 ( set second=!second:~-2! set b3=!second:~0,1! if !b3! EQU 0 set second=!second:~-1! ) set /a second_sum+=!second! set first=!number:~0,-3! set /a first_sum+=!first! ) set /a first_sum+=!second_sum:~0,-3! set b=!second_sum:~-3! :end echo !first_sum!!b! | Результат в байтах !first_sum!!b! | Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 18:56 12-09-2007 | Исправлено: king_stiven, 08:53 15-09-2007 |
|