Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1693 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH MS-DOS] Code retour ERRORLEVEL différent suivant mode lancement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH MS-DOS] Code retour ERRORLEVEL différent suivant mode lancement

n°2292934
Le Taz
Posté le 29-11-2016 à 16:56:29  profilanswer
 

Bonjour à tous,
 
Je m'arrache les cheveux depuis quelques heures sur un problème de valeur du code %ERRORLEVEL% au niveau d'un script .bat.
Pour faire simple, j'ai un fichier .bat qui lance une application en .exe.
Je récupère ensuite le code retour du lancement de cette application pour donner ce même code retour à mon .bat.
 
J'ai donc mon .bat (je vous montre la version simple ici):

Code :
  1. rem Lancement de la duplication
  2. set /A errcode=0
  3. MonApplication.exe param1 param2 param3
  4. rem On teste le code retour
  5. IF %ERRORLEVEL% EQU 0 (SET errcode=%ERRORLEVEL% && echo "TERMINE OK." ) ELSE (SET errcode=%ERRORLEVEL% && echo "KO." )
  6. echo %errcode%
  7. rem exit /B %errcode%


 
Quand je lance MonApplication.exe avec des paramètres farfelues directement dans une invite de commande via le menu démarrer > exécuter > cmd, le echo %errcode% renvoit bien une erreur avec le code retour 4.

Code :
  1. c:\Toolkit\>MonApplication.exe param1 param2 param3
  2. c:\Toolkit\>echo %ERRORLEVEL%
  3. 4


 
Par contre, quand je passe directement par le .bat, le code retour est toujours 0 (zéro) avec le echo "TERMINE OK", et je ne comprends pas pourquoi.

Code :
  1. c:\Toolkit>MonBatch.bat param1 param2 param3
  2. c:\Toolkit>echo off
  3. "TERMINE OK."
  4. 0


 
Est-ce que vous auriez une idée, svp ?
 
Merci.


Message édité par Le Taz le 29-11-2016 à 17:05:04
mood
Publicité
Posté le 29-11-2016 à 16:56:29  profilanswer
 

n°2292969
Le Taz
Posté le 30-11-2016 à 09:48:56  profilanswer
 

Je viens de trouver une piste.
En lançant mon .bat dans une invite de commande MS-DOS après y avoir fait un set ERRORLEVEL=1, cela fonctionne.
Cela veut donc dire que dans mon .bat, quand je teste la valeur de ERRORLEVEL via mon IF, il se réfère à cette variable dans l'environnement de l'invite de commande (que j'ai positionné à 1) et non dans l'environnement de mon .bat où le code retour de mon .exe est bien différent.
 
Il doit donc y avoir un moyen d'isoler tout ça. Une idée, svp ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH MS-DOS] Code retour ERRORLEVEL différent suivant mode lancement

 

Sujets relatifs
[Shell/Batch] Exécuter une commande sur plusieurs serveursMacro VBA pour écrire du code Macro ImageJ
Code HTML interprété différent chez OVH[Batch] Lancer un application avec control
Modification page de démarrage navigateurs internet en batchbesoin d'un code java EE pour authentifier un login et un password
Supprimez le fichier image uploded utilisant le code d'ajaxSript Batch comparaison de 2 ip
[DM Code]en fait un système permettant de définir des nombres premiers 
Plus de sujets relatifs à : [BATCH MS-DOS] Code retour ERRORLEVEL différent suivant mode lancement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR