Como exportar os caminhos das pastas que estão dentro de uma pasta para um arquivo de texto com lote ou cmd

3

Eu tenho uma pasta com pastas root / sound / weapon / ak47, root / sound / weapon / m1. root / som / arma / m4a1 etc. as pastas ak47, m1, m4a1 estão na raiz / som / arma.

Eu quero exportar esses caminhos para .txt com cmd.

Por exemplo:

root/sound/weapon/ak47
root/sound/weapon/m4a1
root/sound/weapon/m1

Eu sei que DIR root\sound\weapons /B /O >Names.txt exporta os nomes ak47, m1, m4a1 para um .txt, mas não consigo pensar em como posso obter os caminhos.

    
por GreatAlex78th 12.01.2016 / 17:00

2 respostas

2

Adicionar o argumento /s incluirá subdiretórios na listagem (o que você pode não querer), mas um efeito colateral é que ele também exibe o caminho completo para todos os arquivos (que você deseja):

Então, tente algo como DIR root\sound\weapons /B /S >Names.txt .

Outra alternativa (que não inclui subpastas) pode ser criar um arquivo em lotes e usar For . Algo como:

@echo off
if exist files.txt del files.txt
for /f %%a in ('dir %1 /b') do @echo %1\%%a >> files.txt

Execute o arquivo em lote e forneça o caminho para o qual você deseja o DIR, por exemplo: myBatch.bat c:\Path

    
por 12.01.2016 / 17:07
0

Eu quero exportar esses caminhos para .txt com cmd

Nota:

  • No Windows, o delimitador de caminho é \ não / .

De um cmd shell :

Se você quer apenas o caminho:

for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~pnxi >> Names.txt

Exemplo:

F:\test>for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~pnxi >> Names.txt

F:\test>type Names.txt
\test\root\sound\weapon\ak47
\test\root\sound\weapon\m1
\test\root\sound\weapon\m4a1

Se você quiser a unidade também, use:

for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~fi >> Names.txt

Exemplo:

F:\test>for /f %i in ('dir /a:d root\sound\weapon /b /s') do @echo %~fi >> Names.txt

F:\test>type Names.txt
F:\test\root\sound\weapon\ak47
F:\test\root\sound\weapon\m1
F:\test\root\sound\weapon\m4a1

Em um arquivo em lotes :

Substitua % por %% .

for /f %%i in ('dir /a:d root\sound\weapon /b /s') do @echo %%~pnxi >> Names.txt

Ou:

for /f %%i in ('dir /a:d root\sound\weapon /b /s') do @echo %%~fi >> Names.txt

Leitura Adicional

por 12.01.2016 / 17:26