"if exist" d'un file sur une arborescence.

Résolu
Fallentree Messages postés 2445 Statut Membre -  
barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je me demandais s'il n'y avais pas plus simple de faire un dir/s puis rechercher le fichier concerné ....
dir /S/D | find "toto.txt" 

sous cmd ca fonctionne mais en .bat c'est une autre histoire
dir /S/D ^| find "toto.txt" 
if %errorlevel% equ 1 echo fichier trouvé.

dir /S/D | find "toto.txt" > null && echo n'existe pas.

Une idée?
Au fait les 2 derniers codes ne fonctionnebt pas.
Merci de votre lecture

1 réponse

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonsoir,

    Le ^ pour échapper | n'est utile que dans une boucle FOR, un exemple :

    for /f %%A in ('dir /S ^| find "toto.txt"') do (


    Petite remarque concernant tes commandes : j'ai remarqué que tu inversais les codes retours.

    Pour vérifier la bonne exécution d'une commande tu peux utiliser && ou bien tester si %ERRORLEVEL% est à 0.

    Pour vérifier la mauvaise exécution d'une commande tu peux utiliser || ou bien tester si %ERRORLEVEL% est à 1.


    “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
    0
    1. Fallentree Messages postés 2445 Statut Membre 210
       
      Bonsoir ,
      dans un premier temps, je comprends pas pourquoi
      dir /S/D | find "toto.txt" 
      ne s"exécute pas.
      il faudrait faire
      dir /S/D | find "toto.txt" || echo n'existe pas.
      0
    2. Fallentree Messages postés 2445 Statut Membre 210
       
      En fait çà fonctionne mais pas avec ma variable ...
      0
    3. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Fallentree Messages postés 2445 Statut Membre
       
      Est-ce que tu es sûr de rechercher dans le bon dossier ?

      Est-ce que tu as un message d'erreur ?

      Quelle est la valeur de %ERRORLEVEL% après exécution de la commande ?
      0
    4. Fallentree Messages postés 2445 Statut Membre 210
       
      C'est les accents et les tremas ....
      0
    5. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930 > Fallentree Messages postés 2445 Statut Membre
       
      Pour prendre en compte les accents et les tremas tu dois rajouter ceci à ton script :
      chcp 1252 >nul
      0