recherche texte dans .bat

recherche texte dans .bat - Shell/Batch - Programmation

Marsh Posté le 26-07-2010 à 12:43:41    

Bonjour,
 
 
Je voudrai créer un .bat capable de chercher parmi des centaines de fichiers, ceux qui contiennent la chaine de caractère "chainedecaracteres" et de copier ces fichiers dans un répertoire précis.
 
J'espère que mon explication est compréhensible !!!


Message édité par Perceval_De_Galles le 26-07-2010 à 16:17:52

---------------
Appuyez vous sur les principes ils finiront bien par céder.
Reply

Marsh Posté le 26-07-2010 à 12:43:41   

Reply

Marsh Posté le 26-07-2010 à 15:48:49    

salut,
 
heu... tu veux pas éditer ton post la? parce que c'est un poil illisible.
 
et sinon, regarde du coté de "find" (find /? -> ce qui sous windows se rapproche le plus de grep sous linux)... find te renvoie un code retour 0 ou 1 en fonction du résultat de la recherche. derriere tu met un if errorlevel et ca roule...
 
++
 

Reply

Marsh Posté le 26-07-2010 à 16:18:39    

J'en suis arrivé ici :
for %%a In ("c:rep1*.txt";) do >nul find "texte recherché" < "%%a" && echo copy %%~sa c:rep2
 
---> ne fonctionne pas


Message édité par Perceval_De_Galles le 26-07-2010 à 16:20:31

---------------
Appuyez vous sur les principes ils finiront bien par céder.
Reply

Marsh Posté le 26-07-2010 à 16:44:00    

je ne crois pas que le && fonctionne sous windows... tu es obligé de checker le résultat de ta commande qui est stocké dans %ERRORLEVEL%.

Reply

Marsh Posté le 26-07-2010 à 17:26:57    

A essayer et adapter :

Code :
  1. FOR /F "tokens=*" %f IN ('findstr /M "chaine" c:\rep1\*.txt') DO ECHO COPY %f C:\rep2


 
Jean-Pierre.

Message cité 1 fois
Message édité par aigles le 26-07-2010 à 17:28:20
Reply

Marsh Posté le 27-07-2010 à 10:27:04    

aigles a écrit :

A essayer et adapter :


Code :
  1. FOR /F "tokens=*" %f IN ('findstr /M "chaine" c:rep1*.txt') DO ECHO COPY %f C:rep2


J'ai adapté et ca me retourne "f était inattendu" !!!


Message édité par Perceval_De_Galles le 27-07-2010 à 14:45:26

---------------
Appuyez vous sur les principes ils finiront bien par céder.
Reply

Marsh Posté le 27-07-2010 à 11:18:15    

le for a un fonctionnement bizarre... il faut mettre un "%" devant les variables si tu le tapes dans une invite de commande, mais 2 "%%" si tu le mets dans un bat...
 
essaie donc avec:

Code :
  1. FOR /F "tokens=*" %%f IN ('findstr /M "chaine" c:rep1*.txt') DO ECHO COPY %%f C:rep2

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed