glebsts
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ой. что-то я в /R и не вчитался толком. Спасибо большое, так оно действительно проще%)) Попробую сейчас еще и на shell-скрипт переписать, ибо на нем тоже надо. Спасибо) УПД: Знаете, я может слегка не так выразился, но для каждого подкаталога нужно найти свой наибольший файл. Сижу и думаю, for /r "%sel_dir%" %%a in (*.*) do ( суть два вложенных цикла, внешний для каталогов, внутренний для файлов в каталоге из внешнего. Как "провести границу" между циклами? т.е. Код: for каждый каталог do( largest_size=0 for каждый файл do ( if ..GTR largest_size (...) ) echo largest_size ) | воть UPD2: Очень извращенное, но работающее решение (требует параметра): Код: @echo off setlocal enabledelayedexpansion if "%1"=="" ( echo Usage: my.bat existing folder exit /b ) if not exist "%1" ( echo Usage: my.bat existing folder exit /b ) set sel_dir=%~1 set "largest_size=0" set "largest_file=" set filepath="_&_" for /r "%sel_dir%" %%a in (*.*) do ( if !filepath!=="_&_" ( set "filepath=%%~pa" ) if !filepath! NEQ %%~pa ( echo !largest_file! with size !largest_size! set "largest_size=0" set "filepath=%%~pa" set "largest_file=" ) if %%~za GTR !largest_size! ( set "largest_size=%%~za" set "largest_file=%%a" ) ) | Оперативу кушает только так, будучи запущенной с c:\ . Для просмотра папки cygwin потребовалось около 150Мб памяти. Периодически память освобождается, в районе 250-300Мб. Гадость, конечно, но больше ничего не придумалось.. Счас буду на шелл переписывать. | Всего записей: 6 | Зарегистр. 01-05-2007 | Отправлено: 22:54 01-05-2007 | Исправлено: glebsts, 01:00 02-05-2007 |
|