Lister noms des fichiers de plusieurs sous-dossiers

Fermé
Paul_ Messages postés 2 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 6 juin 2013 - Modifié par Paul_ le 5/06/2013 à 16:06
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 6 juin 2013 à 16:39
Bonjour,

Je recherche une formule batch pour lister les noms de fichiers (uniquement les .pdf) dans un nouveau fichier texte.

Mes dossiers et fichiers sont tous disposés de la manière suivante :

Dossier
A
A1
fichier1.pdf
fichier2.pdf
A2
fichier3.pdf
fichier4.pdf
B
B1
fichier5.pdf
fichier6.pdf
B2
fichier7.pdf
fichier8.pdf

J'aimerais avoir un résultat le plus épuré possible dans mon fichier txt, càd uniquement les noms de mes fichiers comme ceci :

fichier1
fichier2
fichier3
fichier4
...

Sans numéros, chemin d'accès, extensions, ...

Et à la limite si c'est possible de faire apparaître les noms des sous-dossiers entre les packs de noms de fichiers ça m'arrangerait :

A1
fichier1
fichier2
A2
fichier3
fichier4
...

Merci par avance!
A voir également:

5 réponses

dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
6 juin 2013 à 08:51
hello
essayer
C:> for /f "tokens=1-4 delims=-.|+" %a in ('tree /f /a ^| findstr /c:^+ /c:.pdf') do @echo %a
a
       fichier1
       fichier2
b
       fichier1
       fichier2

C:>
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
6 juin 2013 à 13:35
essayer aussi
for /d %a in (*.*) do @if exist %a\*.pdf (echo %a& for /f %b in ('dir /b %a\*.pdf') do @echo %~nb)
0
Paul_ Messages postés 2 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 6 juin 2013
6 juin 2013 à 14:41
Tout d'abord merci à vous pour cette aide!

Je vais essayer cette formule, mais où est-ce que j'indique dans quel fichier je vais retrouver le résultat?

J'avais fait un essai :

@echo off
dir /O:G /B "C:\Dossier1\A\A02" > monfichier.txt


Et j'ai obtenu un résultat propre mais pour un seul dossier:

Fichier1.xls
Fichier2.pdf
Fichier3.pdf
Fichier4.pdf


Ce que je voudrais c'est d'avoir ce résultat pour tous mes sous-dossiers et que ça me crée un fichier dans lequel se trouvera ma liste.
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
6 juin 2013 à 15:14
pour avoir le résultat dans un fichier, exécuter avec :
cmd1> resultat.txt
dans un bat, il faut utiliser %%variable :
type cmd1.bat
@echo off
for /f "tokens=1-4 delims=-.|+" %%a in ('tree /f /a ^| findstr /c:^+ /c:.pdf') do echo %%a

type cmd2.bat
@echo off
for /d %%a in (*.*) do if exist %%a\*.pdf (echo %%a& for /f %%b in ('dir /b %%a\*.pdf') do echo %%~nb)

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
6 juin 2013 à 16:39
ceci devrait mieux aller pour : aller dans les sous-répertoires et traiter les fichiers avec espace dans le nom
@echo off
for /r %%a in (.) do if exist "%%a\*.pdf" (
	echo %%~na
	for /f "delims=" %%b in ('dir /b "%%a\*.pdf"') do echo %%~nb)
0