Obtém nomes de arquivos do caminho do diretório ou do arquivo .txt - Windows

0

Atualmente eu tenho um FileListGenerator.bat que parece assim:

dir /b /s >>FilesDirectoryList.txt

Retornando uma lista de diretórios de arquivos parecidos.

C:\Users\Ben\Desktop\Customers\Customer1
C:\Users\Ben\Desktop\Customers\Customer2
C:\Users\Ben\Desktop\Customers\FileListGenerator.bat
C:\Users\Ben\Desktop\Customers\FilesDirectoryList.txt
C:\Users\Ben\Desktop\Customers\Customer1\Analysys Mason
C:\Users\Ben\Desktop\Customers\Customer1\More
C:\Users\Ben\Desktop\Customers\Customer1\Other
C:\Users\Ben\Desktop\Customers\Customer1\Analysys Mason\Crook _ Hatchet blk white font.psd
C:\Users\Ben\Desktop\Customers\Customer1\More\Crook _ Hatchet lot.png
C:\Users\Ben\Desktop\Customers\Customer1\More\Crook _ Hatchet midd.png
C:\Users\Ben\Desktop\Customers\Customer1\Other\Crook _ Hatchet bigger.png
C:\Users\Ben\Desktop\Customers\Customer1\Other\Crook _ Hatchet botton final.png
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason
C:\Users\Ben\Desktop\Customers\Customer2\More
C:\Users\Ben\Desktop\Customers\Customer2\Other
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason\LiberalHand-Bld.otf
C:\Users\Ben\Desktop\Customers\Customer2\Analysys Mason\LiberalHand-Rg.ttf
C:\Users\Ben\Desktop\Customers\Customer2\Other\Crook _ Hatchet new font.png

Existe uma maneira de executar um script no arquivo .txt ou na linha de comando para retornar apenas os nomes dos arquivos?

    
por Ben Allington 08.02.2017 / 14:40

3 respostas

1

Tente isso na linha de comando:

for /r %a in (*) do @echo %~nxa >>FilesDirectoryList.txt

No arquivo de lote (precisa dobrar os sinais de porcentagem):

for /r %%a in (*) do @echo %%~nxa >>FilesDirectoryList.txt

Com base na resposta here

    
por 08.02.2017 / 14:45
0

Se você precisar exibir APENAS um tipo de arquivo como .txt, .doc, .dll, .exe ..etc, poderá usar o comando dir e ajustar os parâmetros conforme necessário.

Aqui está um exemplo simples: Suponha que eu precise exibir uma lista de nomes de arquivos de texto apenas em um diretório. Eu posso usar este comando

dir *.txt /b

e ele exibirá algo assim:

file1.txt

file2.txt

file3.txt

file4.txt

...etc

você pode usá-lo em um arquivo de lote como é (algo assim):

@Echo off

:: display a list of *.txt files
dir *.txt /b

ou você pode expandir o código como quiser (algo assim):

@Echo off

:: save a list of *.txt files into another text file inside C:
dir *.txt /b > C:\results.txt

Depende do seu objetivo e de como você deseja alcançá-lo.

Você pode aprender mais sobre a linha de comando DIR a partir daqui: link

    
por 10.02.2017 / 12:40
0

No Windows PowerShell, você pode fazer isso.

Apenas os nomes dos arquivos com o caminho completo:

(gci -r | ? {!$_.PsIsContainer}).FullName | Out-File test.txt -Force

Apenas os nomes dos arquivos mostrando apenas o nome e a extensão:

(gci -r | ? {!$_.PsIsContainer}).Name | Out-File test.txt -Force
    
por 09.02.2017 / 12:09