FOR et FINDSTR dans un Batch File

royinfo Messages postés 4 Statut Membre -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -


Bonjour, je dois faire un batch file qui regarde dans tous les fichiers *.* du repertoire C: ainsi que ces sous-repertoires pour les fichiers qui ont les chaines de caracteres "tata" et "toto" et "titi". Les fichiers qui ont ces 3 chaines de caracteres doivent etre affiche a l'ecran (incluant le repertoire du fichier) et ecrire le repertoire/fichier dans un fichier d'output (resultat.txt)

est-ce que quelqu'un a une solution

merci beaucoup d'aider un débutant en windows (je suis un Ex de Unix)

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello

    @echo off
    
    (for /f "delims=" %%f in ('dir /b/s') do findstr /m "toto tata titi" "%%f" ) > resultat.txt
    type resultat.txt
    
    0
    1. royinfo Messages postés 4 Statut Membre
       
      Merci beaucoup de la reponse.. j'ai essayé et fonctionne en parti. Les 3 chaines de caractères doivent exister dans le même fichier pour que le fichier soit sélectionné. On dirait qu'avec ce code, que l'une des 3 chaines est trouvées de fichier sera sélectionné ?
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    effectivement. tu veux que les 3 chaines soient présentes ?

    il y a surement plus simple
    @echo off
    
    (for /f "delims=" %%f in ('dir /b/s') do findstr /m "tata" "%%f") > resultat1.txt
    (for /f "delims=" %%f in ('type resultat1.txt') do findstr /m "titi" "%%f") > resultat2.txt
    (for /f "delims=" %%f in ('type resultat2.txt') do findstr /m "toto" "%%f") > resultat.txt
    type resultat.txt
    
    
    0