Script batch recherche de chaine et renvoi resultat

Fermé
Signaler
-
Messages postés
18410
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 janvier 2022
-
Bonjour,

je suis confronté à un problème dans mon script batch.
Voici le cheminement du script que j aimerais mettre en place:

Pour tous les fichiers contenu dans c:\dossier\*.txt rechercher la chaine "toto". Si le fichier contient cette chaine "toto" renvoyer le chemin de ce fichier dans c:\resultat.txt

Voila ce que j'ai essayer mais qui ne fonctionne pas

FOR /F "tokens=1,2* delims=: " %%A IN ('FIND /C "toto" c:\*.txt) DO (
IF %%A GTR 0 ( %%B >>resultat.txt )
)

Merci de votre aide





3 réponses

Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794
Bonjour,

Tu ne cherches pas dans le bon dossier :

FIND /C "toto" c:\*.txt
0
Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794
Et je pense qu'il y a plus simple à faire :

FOR %%A IN (FIND "toto" c:\dossier\*.txt) DO (%%A >> c:\resultat.txt)
0
Et Peut on remplacer "toto" par une variable déclaré précedement ?

SET VARIABLE=toto

FOR /F "tokens=1,2* delims=: " %%A IN ('FIND /C "%VARIABLE%" c:\*.txt) DO (
IF %%A GTR 0 ( %%B >>resultat.txt ) )

Merci
0
Messages postés
13762
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
24 janvier 2022
4 794
oui ça fonctionne avec une variable.
0
Messages postés
18410
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 janvier 2022
5 535
hello
for /f "tokens=1-3 delims=: " %%A in ('find /c "toto" C:\dossier\*.txt ') do if %%C NEQ 0 echo %%B >> c:\resultat.txt 
0