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

Résolu/Fermé
all94 Messages postés 77 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 25 février 2015 - 7 mai 2013 à 19:36
all94 Messages postés 77 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 25 février 2015 - 7 août 2013 à 18:42
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.
A voir également:

5 réponses

ryko1820 Messages postés 1677 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
7 mai 2013 à 20:03
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
jee pee Messages postés 40487 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 28 novembre 2024 9 431
Modifié par jee pee le 7/05/2013 à 20:08
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
pour neutraliser le méta caractère | , mettre le sigle ^ (Alt Gr 9) devant...
0
all94 Messages postés 77 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 25 février 2015 5
Modifié par all94 le 8/05/2013 à 17:45
Bonjour,

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

Cordialement, all94
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
all94 Messages postés 77 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 25 février 2015 5
Modifié par all94 le 10/05/2013 à 18:42
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
jee pee Messages postés 40487 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 28 novembre 2024 9 431
10 mai 2013 à 18:46
Parce que comme plus haut tu as des blancs autour du =
0
all94 Messages postés 77 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 25 février 2015 5
Modifié par all94 le 7/08/2013 à 18:42
Merci, j'avais oublié x)
0