Listar arquivos com caminho usando a linha de comando do Windows

11

Minha estrutura de pastas em uma unidade é assim (no Windows):

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

Esse arranjo continua para centenas de pastas. Dentro de Fd1 de cada pasta x, existem certos .batarquivos. Estou procurando uma maneira de extrair uma lista de .batarquivos com o caminho inteiro usando a linha de comando do Windows para um arquivo de texto. Com pouca experiência no uso do prompt de comando, não tenho idéia de como isso pode ser alcançado.

Quero que a saída seja uma lista como esta:

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

Alguém pode me ajudar?

Chethan S.
fonte

Respostas:

31

Se eu entendo o que você está procurando, tente

dir/s/b *.bat

Se isso funcionar, redirecione-o para um arquivo de texto ....

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

Você também pode achar útil ter uma lista de opções de linha de comando para o comando DIR .

Dennis
fonte
4

Eu sugiro usar o comando FOR com a opção / R.

Por exemplo, para encontrar todos os arquivos no diretório atual, use:

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

Para começar a procurar em um diretório arbitrário, use este formulário do comando:

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

E, finalmente, para procurar todos os arquivos em lotes no diretório c: \ bin, você pode fazer isso:

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

Um ponto que devo destacar, no entanto, é que, se você estiver usando esse comando em um arquivo em lotes, precisará dobrar os sinais de%, para que esses exemplos se tornem:

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

O uso de i como variável aqui é completamente arbitrário e foi implantado em mim nos meus dias de FORTRAN.

Garry Offord
fonte