Goto IF

Résolu
Bonjour, voici mon script qui ne fonctionne pas.

=====debut script================

echo on

SET A=%date:~-4%

if "%A%" EQU "2014" GOTO :2014
if "%A%" EQU "2013" GOTO :2013

:2014
xcopy master_preferences 'C:\Program Files\Google\Chrome' /Y
xcopy Preferences 'C:\Documents and Settings\utilisateur\Local Settings\Application Data\Google\Chrome\User Data\Default\' /Y
mkdir c:\"testok"
schtasks /Delete /TN "Chrome" /F
if exist "c:\testok" rmdir c:\testok
goto end

:2013
goto end
exit

====== fin de script========

si je suis en 2013 cela m'exécute aussi mon goto 2014, je ne comprend vraiment pas.
Merci de votre aide

3 réponses

  1. Trouvé :o)

    je l'ai exécuté en remplaçant tes routines par 'echo 2013' ou 'echo 2014'
    et voici la copie de mon cmd :
    http://img593.imageshack.us/img593/4740/l43u.jpg
    il y a un espace ici :
    if "%A%" EQU "2014" GOTO :2014
    donne
    if "2013 " EQU "2013" => faux donc il continue...

    maintenant, d'où sort cet espace ?
    Au plus simple, pour que ça fonctionne tu n'as qu'à ajouter EQU "2013 " et ...EQU "2014 "
    0
    1. Bonjour,
      Tu as une variable A mais tu ne l'utilises pas dans ton IF à cause des "
      Essaye avec :
      if %A% EQU 2014 GOTO :2014
      if %A% EQU 2013 GOTO :2013
      0
      1. @ MrYAU31 : oulala maizoui mais c'est bien sûr.
        Mais ça n'explique pourtant pas qu'on ait un espace après l'année... :o/
        0
      2. Chez moi, je n'ai pas d'espace si je fais un echo %A%. J'ai juste 2013.
        Et un
        if %A% EQU 2013 echo OK
        me renvoit bien OK.
        0
      3. oui oui moi aussi MrYAU31
        .et j'ai trouvé d'où vient l'espace :
        j'ai copié collé son script et je me suis retrouvé avec un espace supplémentaire en fin de chaque ligne. cqfd
        j'ai provoqué une erreur, au lieu de donner la solution... je vais aller faire pénitence tiens...
        0
    2. Merci effectivement en enlevant les guillemets cela fonctionne
      0