Listar todos os arquivos em todas as subpastas


Respostas:


37

Listar todos os arquivos recursivamente

C: \> dir / s

Para salvá-los em um arquivo

C: \> diretório / s /b>filelist.txt

Exibir uma página por vez

C: \> dir / s | Mais


3
Bem, ok ... Isso também funcionará. Basta saber por que ninguém usa a função de pesquisa padrão do Windows para isso. :-)
Wim ten Brink

2
@Workshop Alex: Porque 1) a recursividade diré um pouco mais rápida se não precisar verificar nenhuma condição; 2) permite salvar os nomes em um arquivo.
grawity

4
@WimtenBrink: e como você envia a pesquisa do Windows para outro usuário?
Adolf garlic

1
Você não necessidade de tubulação a mais, você só precisa o parâmetro / p (faz a mesma coisa)
Keltari

3
Como a pergunta não menciona diretórios, deveria ser dir /a-d /b /s.
jiggunjer

15

Tente árvore / f. Isso deve gerar toda a estrutura.


1
Que será exibido como uma árvore, não como uma lista.
3128 Joey

Você não acha que o OP consideraria esse resultado uma lista?
hyperslug

2
Eu pensei que o comando em árvore tivesse a melhor formatação, permitindo que você visse claramente o nível das subpastas.
alex

ele tem a melhor estrutura. ele pode ser salvo como um arquivo de texto ou arquivo html?
xypha

tentei tree /f>filelist.txte funcionou.
xypha 11/09/16

5

Você receberá o UnixUtils no sourceforge , que lhe dará find.exe.

Em seguida, você pode fazer o seguinte para obter a lista de todos os arquivos com caminhos de pasta.

cd Path\to\folder
find.exe . -type f

Existem outras formas do comando Unix que podem ser úteis para você.
A saída é mais pesquisável em comparação com os comandos nativo dire tree.


Atualizado com a entrada de Johannes.
Na cmd.execoncha

dir /b /s

funciona muito bem para uma lista recursiva no formato formatado Viúvas,
(para que você veja " C:\" e as barras invertidas, ' \').
Eu perdi completamente a resposta da " \b" Nifle! (+1 para isso agora).


Não há necessidade de instalar nada aqui, pois diré perfeitamente capaz disso.
3128 Joey

1
@ Joanes, você comparou uma findsaída Unix com um DOS dir /sou, treenesse caso?
nik

1
Você já usou dir /b? :-)
Joey

@ Joanes, na verdade não me lembro se fiz isso nos 6,22 dias do DOS. Obteve mais usado para finde com Cygwin, nunca tentei os comandos do DOS (na verdade, me levou um momento para abrir cmdshell e evitar /usr/bin/dirtentar essa opção Mas, ela não funciona; feliz em saber disso.:-)
nik

2

Por que tão complexo? Pressione a tecla Windows + F para iniciar a "Pesquisa de arquivo" no Windows. À esquerda, vá em "Examinar" e selecione a opção na parte inferior chamada "Procurar ...". Selecione a (sub) pasta na qual deseja pesquisar. Digite "*" (sem as aspas) na caixa de edição "Todo ou parte do nome do arquivo" e inicie a pesquisa. Tome um café ao pesquisar em um grande disco com muitos dados e aguarde até que esse mecanismo de pesquisa baseado em explorador mostre uma lista completa. Você pode pesquisar, abrir arquivos diretamente e até restringir sua pesquisa, se necessário.

Por que as pessoas esquecem esse comportamento de pesquisa padrão do Windows?


3
porque não é 1337? :-)
Natrium

13
Você dificilmente conseguiria isso em um arquivo de texto, por exemplo.
Joey

Verdade, mas por que alguém iria querer isso em um arquivo de texto? :-)
Wim ten Brink

2
Observe que isso (pelo menos no Win XP) pesquisará todos os arquivos ZIP em todas as subpastas também. O que será terrivelmente lento. O que provavelmente não é o que você deseja. O que não pode ser facilmente desligado. Se não houver arquivos ZIP, concordo que esta é a melhor abordagem.
Martin

@Wim: Seu processo de 5 etapas (Win + F, Browse, Subfolder, *, Start) é muito mais lento do que apenas digitar "dir / s" (para um digitador que digita mais de 100 palavras por minuto e está acostumado a fazer coisas) em um prompt de comando, por isso é frequentemente pré-aberto). Além disso, o processo que você mencionou mudou nas versões do Windows, enquanto "dir / s" tem sido consistente. Além disso, seu processo exige pressionar Win + F, o que nem sempre é fácil. Às vezes, mesmo se um teclado possui a tecla Windows, essa chave pode ser mais difícil de usar, como em cenários de acesso remoto onde a chave pode ser usado pelo computador local em vez do remoto
TOOGAM

1

Acho esse arquivo em lote útil

DragDropListFile.bat

@ECHO OFF
SET targetPath="%~1"
SET ToolPath=%~dp0

dir %targetPath% /b /s /a-d > "%ToolPath%list.txt"

Uso: basta arrastar a pasta e soltá-la no arquivo DragDropListFile.bat, e um arquivo chamado list.txt, que contém o que você deseja, é criado.

Se você não gosta de arrastar e soltar, tente este arquivo em lotes

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

dir "%crtPath%" /b /s /a-d > list.txt

Uso: coloque o arquivo ListFile.bat na pasta que deseja listar arquivos, execute o arquivo ListFile.bat e, em seguida, crie um arquivo chamado list.txt, que contém o que você deseja.


0

dir /s /w >files.txtirá levá-lo a maior parte do caminho até lá. Manterá as extensões. Em seguida, abra files.txtem um editor de texto e

  • classifique todas as linhas e exclua as supérfluas
  • ou remova-os com uma operação de localização e substituição ou 2.
    • O regex ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\neliminou as lacunas e os detalhes da pasta entre as listagens de arquivos de pastas individuais para mim no Notepad ++.
  • Em seguida, apare a parte superior e final do arquivo de texto.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.