[Batch] Problème avec GOTO et avec le caractère "|"

Résolu
Bonjour,

Je suis en train de créer un petit script complexe qui permettra de créer un dossier que l'on pourra rendre invisible aux yeux des utilisateurs pour garder des fichiers en sûreté. Mes problèmes sont les suivants :

* Dans un message echo, | est reconnue non pas comme un caractère comme un autre
mais comme une fonction pour rajouter une autre commande par dessus echo
* Dans la fonction suivante :
       :boot1
       echo Veuillez s'lectionner votre mode d'utilisation [Copie\Cache\?]
       echo.
       set /p mode = "> "
       if %mode% == copie goto copie
       if %mode% == cache goto cache
       if %mode% == ? goto ?

Les commandes "goto copie", "goto cache" et "goto ?" me donnent comme résultat
«goto était innatendit»

Quelqu'un pourrait-il m'aider SVP ?

Cordialement, all94.

5 réponses

  1. je ne suis pas sûr que de donner à une variable un nom de commande msdos soit autorisé ou recommandé. En l'occurrence : "mode"
    0
    1. Modérateur
      Salut,

      Faudrait supprimer les blancs autour du =

      :boot1 
      echo Veuillez s'lectionner votre mode d'utilisation [Copie\Cache\?] 
      echo. 
      set /p mode=">"  
      if %mode%==copie goto copie 
      if %mode%==cache goto cache 
      if %mode%==? goto ?


      Pour le | (le pipe) cela passe le resultat de la première commande à la seconde. Tu devrais choisir un autre caractère dans ton echo.

      cdlt

      Un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. pour neutraliser le méta caractère | , mettre le sigle ^ (Alt Gr 9) devant...
        0
        1. Bonjour,

          Merci beaucoup pour vos réponses, je vais immédiatement m'occuper des modification et je vous tient au courant.

          Cordialement, all94
          0
          1. Bonjour,

            Merci encore pour vos réponse, cela fonctionne parfaitement mais mon script a encore un petit soucis :s, voila le code en question :

            echo Veuillez entrer votre mot de passe de d'v'rouillage pour la r'cup'ration futur 
            echo de vos donn's 
            echo. 
            set /p mdp = "> " 
            mkdir dossier\mdp 
            attrib +h +s dossier\mdp 
            echo %mdp%>dossier\mdp\mdp.txt 
            attrib +h +s dossier\mdp\mdp.txt 
            echo Votre mot de passe a bien 't' enregistrer ;) ! 
            pause 
            goto end

            Le problème est que je souhaite écrire dans un fichier mdp.txt le contenue de la variable mdp mais cela ne fonctionne pas, pourriez-vous me venir en aide une seconde fois SVP ?

            Cordialement, all94.
            0
            1. Modérateur
              Parce que comme plus haut tu as des blancs autour du =
              0
            2. Merci, j'avais oublié x)
              0