Variables dans un batch

Bonjour,

J'ai un problème assez étrange dans un batch. Je n'arrive pas à assigner une variable une seconde fois en fonction d'une autre variable... Je vous met le code pour que vous compreniez mieux :

echo off
cls

rem Initialisation de la variable de retour
SET CDResult=-

rem Chemin existant
cd C:\
rem Chemin inexistant
rem cd fdnguidf

set CD_STATUS=%ERRORLEVEL% 

if CD_STATUS== 0 (SET CDResult = Echec)
if CD_STATUS== 1 (SET CDResult = Succes)

echo %CD_STATUS%
echo %CDResult%

pause


Avez vous une idée de pourquoi ca ne fonctionne pas???

Merci d'avance!

David.
Configuration: Windows XP
Firefox 3.5

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    hello
    essaye sans les ()
    if CD_STATUS== 0 SET CDResult = Echec
    if CD_STATUS== 1 SET CDResult = Succes
    ou puisque c'est une variable numérique essaye avec EQU plutot que ==
    1. salut,

      merci de ta réponse mais ca ne fonctionne pas...

      Je vais compléter le post en fait:
      - le if fonctionne bien parce que si je remplace CDResult = Echec par echo Echec il m'affiche bien "Echec".
      - j'ai testé avec et sans parenthèses
      - j'ai testé en mettant %CDResult% = Echec

      Je ne comprends rien à cette erreur...
      1. Contributeur
        set n'aime pas les espaces et il faut inverser, 0 = succès

        if %CD_STATUS% EQU 0 SET CDResult=Succes
        if %CD_STATUS% EQU 1 SET CDResult=Echec
        
        1. oui merci dubcek je viens de trouver... La honte sur moi j'ai passé un peu plus de 2h la dessus...

          Pour le 0 oui j'ai remarqué mais ce n'est pas pour des commandes comme ca en fait que j'en ai besoin c'est pour msbuild, mstest et tf si tu connais.
          (compilations, tests et obtention des sources c# avec team foundation server).

          Encore merci de ton aide!