Liste tous les fichiers dans tous les sous-dossiers


Réponses:


37

Lister tous les fichiers de manière récursive

C: \> dir / s

Pour les enregistrer dans un fichier

C: \> dir / s /b> liste de fichiers.txt

Affichez-les une page à la fois

C: \> dir / s | plus


3
Eh bien, d'accord ... Cela fonctionnera aussi. Je me demande simplement pourquoi personne n'utilise la fonction de recherche standard de Windows pour cela. :-)
Wim ten Brink

2
@Workshop Alex: Parce que 1) récursif direst juste un peu plus rapide s'il n'a à vérifier aucune condition; 2) il vous permet d'enregistrer les noms dans un fichier.
grawity

4
@WimtenBrink: et comment allez-vous envoyer la recherche Windows à un autre utilisateur?
adolf garlic

1
Vous n'avez pas besoin de diriger vers plus, vous avez juste besoin du commutateur / p (fait la même chose)
Keltari

3
Étant donné que la question ne mentionne pas les répertoires, elle devrait l'être dir /a-d /b /s.
jiggunjer

15

Essayez arbre / f. Cela devrait produire la structure entière.


1
Qui sera affiché comme un arbre, pas une liste.
Joey

Vous ne pensez pas que le PO considérerait ce résultat comme une liste?
hyperslug

2
Je pensais que la commande d'arbre aurait le meilleur formatage, vous permettant de voir clairement le niveau des sous-dossiers.
alex

il a la meilleure structure. peut-il être enregistré en tant que fichier texte ou fichier html?
xypha

essayé tree /f>filelist.txtet cela a fonctionné.
xypha

5

Vous obtiendrez UnixUtils chez sourceforge , cela vous donnera find.exe.

Vous pouvez ensuite procéder comme suit pour obtenir la liste de tous les fichiers avec des chemins de dossier.

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

Il existe d'autres formes de la commande Unix qui peuvent vous être utiles.
La sortie est plus facile à rechercher par rapport aux commandes natives diret tree.


Mis à jour avec l'entrée de Johannes.
Dans la cmd.execoquille

dir /b /s

fonctionne assez bien pour une liste récursive sous la forme formatée Widows,
(vous voyez donc " C:\" et les barres obliques inversées, ' \').
J'ai complètement raté la réponse de " \b" dans Nifle! (+1 pour ça maintenant).


Pas besoin d'installer quoi que ce soit ici, car cela en direst parfaitement capable.
Joey

1
@Johannes, avez-vous comparé une findsortie Unix avec un DOS dir /sou treed'ailleurs?
nik

1
Avez-vous déjà utilisé dir /b? :-)
Joey

@Johannes, en fait, je ne me souviens pas si je l'ai fait dans le DOS 6.22 jours. A plus utilisé pour findet avec Cygwin, jamais essayé les commandes DOS ( en fait m'a pris un moment pour ouvrir la cmdcoquille et éviter /usr/bin/dird'essayer cette option Mais, il ne fonctionne pas , heureux d'apprendre que.:-)
nik

2

Pourquoi si complexe? Appuyez sur Windowskey + F pour démarrer la "Recherche de fichiers" dans Windows. Sur la gauche, allez dans "Regarder dans" et sélectionnez l'option en bas appelée "Parcourir ...". Sélectionnez le (sous-) dossier dans lequel vous souhaitez effectuer la recherche. Entrez "*" (sans les guillemets) dans la zone d'édition "Tout ou partie du nom de fichier" et lancez la recherche. Prenez un café lorsque vous effectuez une recherche sur un grand disque avec beaucoup de données et attendez simplement que ce moteur de recherche basé sur l'explorateur vous montre une liste complète. Vous pouvez le rechercher, ouvrir des fichiers directement et même affiner votre recherche si besoin est.

Pourquoi les gens oublient-ils ce comportement de recherche par défaut de Windows?


3
parce que ce n'est pas 1337? :-)
Natrium

13
Vous auriez du mal à obtenir cela dans un fichier texte, par exemple.
Joey

C'est vrai, mais pourquoi quelqu'un le voudrait-il dans un fichier texte? :-)
Wim ten Brink

2
Notez que cela (sur Win XP au moins) recherchera également tous les fichiers ZIP dans tous les sous-dossiers. Ce qui sera horriblement lent. Ce qui n'est probablement pas ce que vous voulez. Qui ne peut pas être facilement éteint. S'il n'y a pas de fichiers ZIP, je conviens que c'est la meilleure approche.
Martin

@Wim: Votre processus en 5 étapes (Win + F, Parcourir, Sous-dossier, *, Démarrer) est beaucoup plus lent que de simplement taper "dir / s" (pour une dactylo qui tape plus de 100 mots par minute, et est habitué à faire des choses à une invite de commande, il est donc souvent pré-ouvert). En outre, le processus que vous mentionnez a changé avec les versions de Windows, tandis que "dir / s" a été cohérent. De plus, votre processus nécessite d'appuyer sur Win + F, ce qui n'est pas toujours facile. Parfois, même si un clavier possède la clé Windows, cette clé peut être plus difficile à utiliser, comme dans les scénarios d'accès à distance où la clé peut être utilisée par l'ordinateur local au lieu de la télécommande
TOOGAM

1

Je trouve ce fichier batch très utile

DragDropListFile.bat

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

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

Utilisation: faites simplement glisser le dossier et déposez-le sur le fichier DragDropListFile.bat, puis un fichier nommé list.txt, qui contient ce que vous voulez, est créé.

Si vous n'aimez pas le glisser-déposer, essayez ce fichier batch

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

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

Utilisation: placez le fichier ListFile.bat dans le dossier dans lequel vous souhaitez lister les fichiers, puis exécutez le fichier ListFile.bat, puis un fichier nommé list.txt, qui contient ce que vous voulez, est créé.


0

dir /s /w >files.txtvous y emmènera la plupart du temps. Il conservera les extensions. Ouvrez ensuite files.txtdans un éditeur de texte et

  • trier toutes les lignes et supprimer les superflues
  • ou supprimez-les avec une opération de recherche et de remplacement ou 2.
    • Le regex ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\ns'est débarrassé des lacunes et des détails des dossiers entre les listes de fichiers de dossiers individuels pour moi dans Notepad ++.
  • Ensuite, coupez simplement le haut et la queue du fichier texte.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.