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

Résolu/Fermé
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - Modifié le 31 déc. 2017 à 00:04
barnabe0057 Messages postés 14445 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 24 mai 2024 - 31 déc. 2017 à 14:34
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 14445 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 24 mai 2024 4 909
Modifié le 31 déc. 2017 à 00:02
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 mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
Modifié le 31 déc. 2017 à 00:06
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 mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
31 déc. 2017 à 00:12
En fait çà fonctionne mais pas avec ma variable ...
0