[Batch] Chercher dans plusieurs dossiers chaine de caractère dans fichier

Résolu/Fermé
Ptitgrand Messages postés 13 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 22 juillet 2021 - 15 juil. 2021 à 11:24
Ptitgrand Messages postés 13 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 22 juillet 2021 - 22 juil. 2021 à 09:33
Bonjour,

J'aimerais savoir si vous pourriez m'aider.

Le but de mon programme est de récupérer des fichiers images présents dans un dossier dont je ne connais pas le nom.
Dans ce dossier, il y a un fichier qui contient une chaîne de caractère me permettant de retrouver le bon dossier parmi plusieurs répertoires.

Je cherche donc à concevoir un petit programme qui pourrait rechercher dans différents dossiers (de nom aléatoire) un fichier "txt" qui contient une chaîne de caractère (TOTO) puis j'aimerais ensuite récupérer le chemin qui mène au fichier.

Exemple :

Voici les différents fichiers :

C:\Test\ABC005\ex.txt (Contiens ligne 25 : abv)
C:\Test\ABC001\xe.txt (Contiens ligne 25 : abn)
C:\Test\ABC008\ab.txt (Contiens ligne 25 : TOTO)

J'aimerais exécuter le programme en batch pour récupérer le chemin "C:\Test\ABC008" afin de pouvoir par la suite copier les images dans un autre répertoire.

Cordialement,
DUBOIS Nicolas

2 réponses

barnabe0057 Messages postés 14120 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 5 décembre 2022 4 847
Modifié le 15 juil. 2021 à 11:40
Bonjour,

Tu peux essayer quelque chose comme ça :
for /f "delims=" %%A in ('2^>nul dir /b /s C:\Test\*.txt') do (
findstr /C:"TOTO" "%%~A" >nul && echo %%~dpA
)
pause
exit



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
1
Ptitgrand Messages postés 13 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 22 juillet 2021
22 juil. 2021 à 09:29
Génial !
Cela à fonctionné, je vous remercie :)
0
Grisame Messages postés 1 Date d'inscription lundi 12 juillet 2021 Statut Membre Dernière intervention 15 juillet 2021
15 juil. 2021 à 11:43
Bonjour,

Peut-être regarder vers du findstr :
Juste remplacer le path pour le coup.
Le path sera indiqué dans le "Resultats.txt" sur le bureau


set /P chaine= information a chercher :
findstr "%chaine%" path\*.txt > C:\Users\%username%\Desktop\Resultats.txt
pause


Cordialement,
0
Ptitgrand Messages postés 13 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 22 juillet 2021
22 juil. 2021 à 09:33
Effectivement, il faut utiliser findstr avec FOR !
Merci de votre aide !
0