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

Résolu
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   -  
barnabe0057 Messages postés 14455 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

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
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
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
En fait çà fonctionne mais pas avec ma variable ...
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention  
 
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
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
C'est les accents et les tremas ....
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925 > Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention  
 
Pour prendre en compte les accents et les tremas tu dois rajouter ceci à ton script :
chcp 1252 >nul
0