2015-12-11 3 views
1

Я пытаюсь перебирать кучу файлов в подкаталогах, чтобы запускать на них команду, но я не могу понять, как их достичь.Loop через файлы в подкаталогах командный файл

структура каталогов выглядит так:

  • Основной каталог (Вмещает .bat файл и верхнего уровня каталогов)
    • подкаталог
      • каталог Поиск
        • Куча файлов (мне нужны все эти места отдельно)

Я могу получить список всех файлов/папок в «главном каталоге» с использованием:

for /f %%f in ('dir /b /r *') do echo %%f 

, но я не могу показаться, чтобы выяснить как идти дальше в каталоги, чтобы получить файлы в каталоге «Поиск».

Пример структуры файла является:

C:\Users\swiftsly\Search160\0002\search\AP584.txt 

Любая помощь очень ценится!

+2

Если вы случайно прочитали ПОМОЩЬ для команды DIR, возможно, вы заметили опцию **/S **. Но вместо FOR/F я использовал команду FOR/R. – Squashman

+0

@Squashman, 'for/R' отлично до тех пор, пока тело цикла не манипулирует деревом каталогов; так как ОП не сказал, какая команда должна быть выполнена в перечислимых файлах, я бы хотел, чтобы опция 'for/F' /' dir/B/S' была сохранена; см. этот пост: [В какой момент '' for' или 'for/R' перечисляет каталог (дерево)?] (http://stackoverflow.com/q/31975093/5047996) ... – aschipfl

ответ

1

Окончательное решение этого вопроса, с помощью рекомендации Squashman использовать /R вместо /f является:

@echo off  
for /R %%f in (*.txt) do echo %%f 

Это выведет список всех файлов .txt в суб -directories.