Elenca tutti i file in tutte le sottocartelle


Risposte:


37

Elenca tutti i file in modo ricorsivo

C: \> dir / s

Per salvarli in un file

C: \> dir / s /b>filelist.txt

Visualizza loro una pagina alla volta

C: \> dir / s | Di Più


3
Bene, ok ... Anche questo funzionerà. Mi chiedo solo perché nessuno usi la funzione di ricerca standard di Windows per questo. :-)
Wim ten Brink,

2
@Workshop Alex: Perché 1) ricorsivo dirè solo un po 'più veloce se non deve controllare alcuna condizione; 2) ti permette di salvare i nomi in un file.
Grawity,

4
@WimtenBrink: e come hai intenzione di inviare la ricerca di Windows a un altro utente?
Adolf garlic,

1
Non è necessario eseguire il pipe su altro, è sufficiente l'
opzione

3
Dal momento che la domanda non menziona le directory, dovrebbe essere dir /a-d /b /s.
jiggunjer,

15

Prova albero / f. Questo dovrebbe produrre l'intera struttura.


1
Che verrà visualizzato come un albero, non un elenco.
Joey,

Non pensi che l'OP considererebbe quel risultato un elenco?
hyperslug,

2
Ho pensato che il comando tree avrebbe avuto la migliore formattazione, permettendoti di vedere chiaramente il livello delle sottocartelle.
alex,

ha la struttura migliore. può essere salvato come file di testo o file html?
xypha,

provato tree /f>filelist.txte ha funzionato.
xypha,

5

Otterrai UnixUtils su sourceforge , che ti darà find.exe.

È quindi possibile effettuare le seguenti operazioni per l'elenco di tutti i file con percorsi di cartelle.

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

Esistono altre forme del comando Unix che potrebbero esserti utili.
L'output è più in grado di cercare rispetto al nativo dire ai treecomandi.


Aggiornato con input da Johannes.
Nel cmd.exeguscio

dir /b /s

funziona abbastanza bene per un elenco ricorsivo nel formato formattato Widows,
(quindi vedi " C:\" e le barre inverse ' \').
Ho completamente perso la " \b" Niflerisposta di! (+1 per quello ora).


Non è necessario installare nulla qui, poiché dirè perfettamente in grado di farlo .
Joey,

1
@Johannes, hai confrontato un findoutput Unix con un DOS dir /so del resto tree?
nik,

1
L'hai mai usato dir /b? :-)
Joey,

@Johannes, in realtà non ricordo se l'ho fatto nei DOS 6.22 giorni. findMi sono abituato di più e con Cygwin, non ho mai provato i comandi dos (in realtà mi ci è voluto un momento per aprire la cmdshell ed evitare /usr/bin/dirdi provare quell'opzione. Ma funziona, contento di saperlo:-)
nik

2

Perché così complesso? Premere il tasto Windows + F per avviare la "Ricerca file" in Windows. A sinistra, vai su "Cerca" e seleziona l'opzione in basso chiamata "Sfoglia ...". Selezionare la (sotto) cartella in cui si desidera effettuare la ricerca. Immettere "*" (senza virgolette) nella casella di modifica "Tutto o parte del nome del file" e avviare la ricerca. Prendi un caffè quando stai cercando su un grande disco con molti dati e attendi che questo motore di ricerca basato su Explorer ti mostri un elenco completo. Puoi cercarlo, aprire i file direttamente e persino restringere la ricerca se necessario.

Perché le persone dimenticano questo comportamento di ricerca predefinito di Windows?


3
perché non è il 1337? :-)
Natrium

13
Avresti difficoltà a trovarlo in un file di testo, ad esempio.
Joey,

Vero, ma perché qualcuno lo vorrebbe in un file di testo? :-)
Wim ten Brink,

2
Nota che questo (almeno su Win XP) cercherà tutti i file ZIP in tutte le sottocartelle. Che sarà terribilmente lento. Che probabilmente non è quello che vuoi. Che non può essere facilmente disattivato. Se non ci sono file ZIP, sono d'accordo che questo è l'approccio migliore.
Martin,

@Wim: il processo in 5 passaggi (Win + F, Sfoglia, Sottocartella, *, Avvio) è molto più lento della semplice digitazione di "dir / s" (per un dattilografo che digita più di 100 parole al minuto, ed è abituato a fare cose al prompt dei comandi, quindi è spesso pre-aperto). Inoltre, il processo menzionato è cambiato con le versioni di Windows, mentre "dir / s" è stato coerente. Inoltre, il tuo processo richiede di premere Win + F, il che non è sempre facile. A volte, anche se una tastiera ha la chiave di Windows, quella chiave potrebbe essere più difficile da usare, come negli scenari di Accesso remoto in cui la chiave potrebbe essere utilizzata dal computer locale anziché dal telecomando
TOOGAM,

1

Trovo questo file batch ogni utile

DragDropListFile.bat

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

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

Utilizzo: basta trascinare la cartella e rilasciarla sul file DragDropListFile.bat, quindi viene creato un file chiamato list.txt, che contiene ciò che si desidera.

Se non ti piace il trascinamento della selezione, prova questo file batch

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

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

Utilizzo: inserire il file ListFile.bat nella cartella in cui si desidera elencare i file, quindi eseguire il file ListFile.bat, quindi viene creato un file chiamato list.txt, che contiene ciò che si desidera.


0

dir /s /w >files.txtti porterà la maggior parte del percorso lì. Manterrà le estensioni. Quindi aprire files.txtin un editor di testo e neanche

  • ordina tutte le righe ed elimina quelle superflue
  • o rimuoverli con un'operazione Trova e sostituisci o 2.
    • Il regex ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\nsi è sbarazzato degli spazi vuoti e dei dettagli della cartella tra i singoli elenchi di file delle cartelle per me in Notepad ++.
  • Quindi basta tagliare la parte superiore e la coda del file di testo.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.