king_stiven
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору wolf0425 Понял задачу так: В папке C:\ находятся папки 1 2 3 4 5 ... В этих паках есть или нет файлы file.ext 1\file.ext 2\file.ext 3\file.ext 4\2.txt 5\file.ext ... а также в этих папках есть куча подпапок с большим количеством файлов, ненужных для обработки Код: @echo off set data1=0 set data2=0 for /f "tokens=*" %%a in ('dir /b /a:d') do ( set "d=%cd%\%%a" call :yui ) echo %papka% goto :eof :yui for %%b in ("%d%\file.ext") do ( for /f "tokens=1,2,3,4,5 delims=.,:, " %%c in ("%%~tb") do ( if %%e%%d GTR %data1% ( set "papka=%d%" set "data1=%%e%%d" set "data2=%%c%%f%%g" ) if "%%e%%d"=="%data1%" ( if %%c%%f%%g GTR %data2% ( set "papka=%d%" set "data1=%%e%%d" set "data2=%%c%%f%%g" ) ) goto hj ) ) :hj | У меня сработало за 0,05 секунд Добавлено: ещё быстрее @echo off set data1=0 set data2=0 for /d %%a in (*.*) do ( for %%b in ("%%a\file.ext") do ( for /f "tokens=1,2,3,4,5 delims=.,:, " %%c in ("%%~tb") do ( set "d=%%a" call :yui %%e%%d%%c %%f%%g ) ) ) echo %papka% goto :eof :yui if %1 GTR %data1% ( set "papka=%d%" set "data1=%1" set "data2=%2" ) if "%1"=="%data1%" ( if %2 GTR %data2% ( set "papka=%d%" set "data1=%1" set "data2=%2" ) ) |