BAT qui renvoie tous les noms de fichier d'un repertoires

Pro445 -  
jeannets Messages postés 28235 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je voudrait créer un fichier BAT qui renvoi le nom de tous les fichiers d'un dossier précis.

Actuellement j'ai créer un dossier "TEST", et à l'intérieur de ce dossier il y a 5 fichiers .txt :
TEST.txt / TEST2.txt / TEST3.txt / TEST4.txt / TEST5.txt

Voila mon script actuel :


@echo off

for /r "c:\TEST\" %%i in ("*") do set VrTest=%%~nxi
echo %VrTest%:%VrTest%


Actuellement ce script, me renvoi le nom du dernier fichier crée : TEST5.txt

Je voudrait qu'il me renvoie le nom de tous les fichiers.

Merci d'avance.
A voir également:

9 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
echo est en dehors de la boucle for, utiliser ()
@echo off
for /r "c:\TEST\" %%i in ("*") do (
set VrTest=%%~nxi
echo %VrTest%:%VrTest%
)
0
alexdu17200 Messages postés 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
Salut, j'estime que la commande ls/dir (en fonction de ton OS) correspond mieux, dans ton bat, tu peux utiliser dir /A chemin_absolu ou un basique ls
0
Pro445
 
Merci pour vos réponses.

J'ai un soucis j'utilise ce script sur un logiciel de supervision "PRTG".

Avec ce script :

@echo off

for /r "c:\TEST\" %%i in ("*.txt") do set VrTest=%%~nxi
echo %VrTest%:%VrTest%

Le logiciel de supervision me renvoie que le nom du dernier fichier créer dans le dossier.

Avec cette version du scipte :

@echo off
for /r "c:\TEST\" %%i in ("*") do (
set VrTest=%%~nxi
echo %VrTest%:%VrTest%
)

Le logiciel de supervision me renvoie la valeur "OK" et non le nom des 5 fichiers.

je suis novice en BATCH et je galère un peu la

PS : Je suis sous WINDOWS
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on ne sait pas comment PRTG traite les sorties du script
essayer
@echo off
setlocal enabledelayedexpansion
for /r "c:\TEST\" %%i in ("*") do (
set VrTest=%%~nxi
echo !VrTest!:!VrTest!
)
0

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

Posez votre question
jeannets Messages postés 28235 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 5 984
 
Bonsoir,

ça marche... et je suis interessé... pour sortir les Fichiers par dossiers..

Mais ici, il sort tous les fichiers; y compris ceux des sous dossiers..

Que faut-il faire pour qu'il se limite au dossier désigné seulement...?

Merci d'avance.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
c'est le /r qui traite les sous dossiers, essayer
@echo off
setlocal enabledelayedexpansion
for %%i in (C:\TEST\*.*) do (
set VrTest=%%~nxi
echo !VrTest!:!VrTest!
)
0
jeannets Messages postés 28235 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 5 984
 
Hello,

Merci, ça marche, il ne reste qu'à ajouter le renvoi pour en faire un fichier texte

@echo off
setlocal enabledelayedexpansion
for %%i in (C:\TEST\*.*) do (
set VrTest=%%~nxi
echo !VrTest!
) >> catalog.txt

j'ai aussi retiré le dernier VrTest pour ne pas avoir deux fois la même ligne..

Mais, c'est impécable... et les utilitaires qui font ça proprement, ne sont pas légion.

Merci encore

A+++
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
tout cela est équivalent à
dir /b C:\TEST\*.* > catalog.txt 
0
jeannets Messages postés 28235 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 5 984
 
Re,

A mon avis, oui, ça fait la même chose...En tout cas, pour ce que je veux faire.

Je dois dire que je n'avais pas pensé à l'option /b.

Merci pour la coopération.
0