king_stiven
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору perzend Цитата: Есть каталог TMP, содержащий n-ое количество подкатологов, которые содержат k-ое количество подкаталогов ну и т.п. )) В них лежат файлы, например, *.txt. Необходимо найти самый глубоко зарытый файл в каждом подкатологе каталога TMP и перейти в каталог его содержащий. | Если хотите узнать, что делает goto :eof, то в винде есть справка, наберите там goto. Также наберите в комстроке goto /? то же самое и с call. Если никак не разберётесь, ещё раз спросите, расскажу. Также в шапке есть уроки по батфайлам. команда FOR /R "d:/spb/tmp" %%k IN (.) DO ( if exist "%%k\*.txt" ( set peremennay=%%k call :tyu ) ) последовательно перебирает каталоги в корневой папке d:/spb/tmp, выражая их через переменную %%k. Если в каталоге %%k есть текстовой файл, назначаем %%k как peremennay. Затем идём на метку :tyu. Далее проверяем, есть ли в каталоге %%k он же %peremennay% подкаталоги for /f "tokens=*" %%c in ('dir "%peremennay%" /b /a:d') do goto :yui если есть, то перебираем далее до самого глубокого каталога. если нет, то вносим в текст %peremennay% echo %peremennay%>>1.txt Должно работать на 100% можно поменять строчку echo %peremennay%>>1.txt на echo %peremennay%\>>1.txt А вообще то условия задачи нечёткие. Что есть самый глубоко зарытый файл в каждом подкатологе каталога? Я понял, что если в подкаталоге d:/spb/tmp/1/ есть текст. файл. но и в каталоге d:/spb/tmp/1/1/2 тоже есть текст файл, а больше подкаталогов нет, то мы вносим в список d:/spb/tmp/1/1/2 а не d:/spb/tmp/1 |