9

Моя структура папок на диске выглядит так (в Windows):

Folder 1
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5
Folder 2
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5

Эта договоренность продолжается для сотен папок. Внутри Fd1 каждой папки x есть определенные .bat файлы. Я ищу способ извлечь список .bat файлов с полным путем, используя командную строку Windows в текстовый файл. Имея небольшой опыт использования командной строки, я не знаю, как этого можно достичь.

Я хочу, чтобы вывод был таким списком:

............
D:\Folder 1\Fd1\one.bat
D:\Folder 2\Fd2\two.bat
............

Кто-нибудь может мне помочь?

2 ответа2

26

Если я понимаю, что вы ищете, попробуйте

dir/s/b *.bat

Если это работает, то перенаправьте его в текстовый файл ....

dir/s/b *.bat > textfile.txt

Также может оказаться полезным иметь список параметров командной строки для команды DIR.

3

Я бы предложил использовать команду FOR с ключом /R.

Например, чтобы найти все файлы в и в текущем каталоге, используйте:

for /r %i in (*) do @echo %i

Чтобы начать поиск из произвольного каталога, используйте эту форму команды:

for /r "C:\TMP" %i in (*) do @echo %i

И, наконец, чтобы найти все командные файлы в каталоге c:\bin, вы можете сделать это:

for /r "c:\bin" %i in (*.bat) do @echo %i

Однако следует отметить, что если вы используете эту команду в командном файле, вам нужно будет удвоить знаки%, поэтому эти примеры станут следующими:

for /r %%i in (*) do @echo %%i
for /r "C:\TMP" %%i in (*) do @echo %%i
for /r "c:\bin" %%i in (*.bat) do @echo %%i

Использование i в качестве переменной здесь совершенно произвольно и впервые было внедрено в меня в мои дни на Фортране.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .