Listar arquivos em um subdiretório e obter caminhos relativos somente com a linha de comando do Windows

4

Eu quero usar a linha de comando do Windows para listar arquivos com caminho.

Por exemplo:

~\folder1
  .jpg
  .jpg
~\folder2
  .jpg
  .jpg

Eu quero que a saída seja semelhante aos caminhos relativos, e não ao caminho completo:

.\folder1.jpg
.\foler1.jpg

Quando eu uso DIR /S /B *.jpg > list.txt que lista o caminho completo como C:\download\folder\folder1.jpg , eu só preciso listar o caminho relativo como .\folder1.jpg ...

Usando a linha de comando do Linux de find ./ -iname *.jpg > list.txt , obtém o resultado esperado, mas preciso de uma solução que funcione assim com o Windows.

    
por erinmon 21.01.2016 / 18:11

1 resposta

1

Using Windows command line to List files with subdirectory

I want to output: .\folder1.jpg,.\foler1.jpg....

I know if we use dir /s/b *.jpg > list.txt that will get something like C:\download\folder\folder1.jpg, I don't want to that, I just need .\folder1.jpg

Clarificação Variável (abaixo)

  • Onde a lógica abaixo é FOR %X IN ("folder1","Folder2") ou SET Folders=("Folder1","Folder2","Folder3","Folder4") você colocará seu "Folder1" , "Folder2" , e assim por diante apenas com o dobro aspas e vírgulas para cada nome de pasta que você deseja procurar e listar o ./Foldername/file.jpg para o arquivo que você está anexando ao echo saída.
  • Para o Exemplo de cópia da linha de comando , você deverá fazer um CD /D C:\Path no diretório pai em que as subpastas onde os arquivos .JPG existem, já que a lógica está implícita supondo que você esteja o diretório pai para encontrar essas subpastas filhas e os tipos de arquivos / extensões que eles contêm.
  • Para os outros exemplos, basta conectar o diretório pai que contém todas as subpastas filhas em que os arquivos .JPG existem no valor SET ParentDir= e tudo deve funcionar de outra forma conforme o esperado.
  • As outras variáveis que são SET devem ser auto-explicativas, presumo que sejam nomeadas muito próximas do que elas significam, mas me avise se precisar de mais esclarecimentos em contrário.

Exemplo de cópia da linha de comando

FOR %X IN ("folder1","Folder2") DO FOR /F "TOKENS=*" %F IN ('DIR /B /A-D ".\%~X\*.jpg"') DO ECHO .\%~X\%~F>>C:\Path\Log.txt

Definir exemplo de cópia da linha de comando de variáveis

(Use o arquivo abaixo para definir os nomes das pastas e as extensões de arquivo para o comando DIR . Além disso, insira o caminho completo do diretório pai onde as subpastas que você deseja anexar nesse formato estão localizadas. )

SET FileType=*.jpg
SET ParentDir=C:\Users\Name\Desktop
SET Folders=("Folder1","Folder2","Folder3","Folder4")
SET LogFile=C:\Path\LogFile.txt

CD /D "%ParentDir%"
FOR %X IN %Folders% DO FOR /F "TOKENS=*" %F IN ('DIR /B /A-D ".\%~X\%FileType%"') DO ECHO .\%~X\%~F>>"%LogFile%"

Exemplo de script em lote com variáveis de configuração

@ECHO ON
SET FileType=*.jpg
SET ParentDir=C:\Users\Name\Desktop
SET Folders=("Folder1","Folder2","Folder3","Folder4")
SET LogFile=C:\Path\LogFile.txt

CD /D "%ParentDir%"
FOR %%X IN %Folders% DO FOR /F "TOKENS=*" %%F IN (

    'DIR /B /A-D ".\%%~X\%FileType%"'

) DO ECHO .\%%~X\%%~F>>"%LogFile%"
GOTO EOF

Leitura adicional e recursos

por 21.01.2016 / 18:41