Ma variable ne marche pas
Ungwe
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
zephir666 Messages postés 107 Date d'inscription Statut Membre Dernière intervention -
zephir666 Messages postés 107 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je programme depuis un certain temps en batch et ça fait deux fois que je rencontre le même problème.
J'ai fais un script pour cacher un dossier sur code. Ainsi, on peut déverrouiller le dossier en le rendant visible et le verrouiller en le rendant invisible.
Voici donc le goto pour déverrouiller:
:OUVERTURE
echo Ouverture du dossier.
ping localhost -n 1 > nul
echo.
echo Code d'acces requis.
set/p "pass=>"
if NOT %pass%== %code% goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" GreyGab
echo Dossier deverouille.
ping localhost -n 2 > nul
exit
Et voici le goto qui permet de choisir son code lors de la création du dossier:
:DEUX
echo.
set/p code= Entrer le code d'acces:
cls
ping localhost -n 1 > nul
echo Le code est %code% .
echo.
ping localhost -n 1 > nul
echo Valider la saisie? (O/N)
set/p "choun=>"
if %choun%==O goto TROIS
if %choun%==N goto DEUX
echo. Saisie non valable.
goto DEUX
Au début, j'étais vraiment super contente car cela marchait /o/ Et quand je me suis trompée de code, ça marchait aussi. Donc j'ai compris que c'était inutile.
En fait, le code choisis au début du script ne rentre pas en compte pendant l'ouverture :/ Et j'ai essayé pas mal de trucs bizarres, mais je n'y arrive pas. ;_;
Voici le script entier:
@ECHO OFF
color F0
cls
:GIRAFE
title GreyGab
echo. Bienvenue.
ping localhost -n 1 > nul
goto KIKI
:KIKI
echo.
echo. Acceder au menu? (O/N)
set/p "chotrois=>"
if %chotrois%==O goto OPTION
if %chotrois%==N goto CHAT
echo. Mauvaise saisie.
goto KIKI
:CHAT
cls
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto OUVERTURE
if NOT EXIST GreyGab goto MDLOCKER
:CONFIRM
color F6
echo Verrouillage du dossier.
ping localhost -n 1 > nul
echo.
echo Verrouiller? (O/N)
set/p "cho=>"
if %cho%==O goto LOCK
if %cho%==N goto END
echo. Mauvaise saisie.
ping localhost -n 2 > nul
goto CONFIRM
:LOCK
color F6
ren GreyGab "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Dossier verouille.
ping localhost -n 2 > nul
exit
:OUVERTURE
echo Ouverture du dossier.
ping localhost -n 1 > nul
echo.
echo Code d'acces requis.
set/p "pass=>"
if NOT %pass%== %codeg% goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" GreyGab
echo Dossier deverouille.
ping localhost -n 2 > nul
exit
:FAIL
echo Mot de passe invalide.
ping localhost -n 2 > nul
exit
:MDLOCKER
cls
md GreyGab
echo Le dossier GreyGab a ete cree.
ping localhost -n 2 > nul.
cls
echo. Definition du code d'acces au dossier. Attention, il ne doit contenir aucun accent ou caractere speciaux.
goto DEUX
:DEUX
echo.
set/p code= Entrer le code d'acces:
cls
ping localhost -n 1 > nul
echo Le code est %code% .
echo.
ping localhost -n 1 > nul
echo Valider la saisie? (O/N)
set/p "choun=>"
if %choun%==O goto TROIS
if %choun%==N goto DEUX
echo. Saisie non valable.
goto DEUX
:TROIS
echo. Le code d'acces est %code%
ping localhost -n1 > nul
goto CINQ
:CINQ
cls
echo.
echo Creation du dossier terminee.
ping localhost -n 2 > nul
cls
echo. Pour ouvrir ou verrouiller le dossier, ce programme est requis.
echo. L'ouvrir pour chaque ouverture ou verrouillage.
ping localhost -n 4 > nul
exit
:END
exit
Merci d'avoir lu ce pavé, et je sais, honte à moi pour les noms de goto.
Je programme depuis un certain temps en batch et ça fait deux fois que je rencontre le même problème.
J'ai fais un script pour cacher un dossier sur code. Ainsi, on peut déverrouiller le dossier en le rendant visible et le verrouiller en le rendant invisible.
Voici donc le goto pour déverrouiller:
:OUVERTURE
echo Ouverture du dossier.
ping localhost -n 1 > nul
echo.
echo Code d'acces requis.
set/p "pass=>"
if NOT %pass%== %code% goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" GreyGab
echo Dossier deverouille.
ping localhost -n 2 > nul
exit
Et voici le goto qui permet de choisir son code lors de la création du dossier:
:DEUX
echo.
set/p code= Entrer le code d'acces:
cls
ping localhost -n 1 > nul
echo Le code est %code% .
echo.
ping localhost -n 1 > nul
echo Valider la saisie? (O/N)
set/p "choun=>"
if %choun%==O goto TROIS
if %choun%==N goto DEUX
echo. Saisie non valable.
goto DEUX
Au début, j'étais vraiment super contente car cela marchait /o/ Et quand je me suis trompée de code, ça marchait aussi. Donc j'ai compris que c'était inutile.
En fait, le code choisis au début du script ne rentre pas en compte pendant l'ouverture :/ Et j'ai essayé pas mal de trucs bizarres, mais je n'y arrive pas. ;_;
Voici le script entier:
@ECHO OFF
color F0
cls
:GIRAFE
title GreyGab
echo. Bienvenue.
ping localhost -n 1 > nul
goto KIKI
:KIKI
echo.
echo. Acceder au menu? (O/N)
set/p "chotrois=>"
if %chotrois%==O goto OPTION
if %chotrois%==N goto CHAT
echo. Mauvaise saisie.
goto KIKI
:CHAT
cls
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto OUVERTURE
if NOT EXIST GreyGab goto MDLOCKER
:CONFIRM
color F6
echo Verrouillage du dossier.
ping localhost -n 1 > nul
echo.
echo Verrouiller? (O/N)
set/p "cho=>"
if %cho%==O goto LOCK
if %cho%==N goto END
echo. Mauvaise saisie.
ping localhost -n 2 > nul
goto CONFIRM
:LOCK
color F6
ren GreyGab "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
echo Dossier verouille.
ping localhost -n 2 > nul
exit
:OUVERTURE
echo Ouverture du dossier.
ping localhost -n 1 > nul
echo.
echo Code d'acces requis.
set/p "pass=>"
if NOT %pass%== %codeg% goto FAIL
attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" GreyGab
echo Dossier deverouille.
ping localhost -n 2 > nul
exit
:FAIL
echo Mot de passe invalide.
ping localhost -n 2 > nul
exit
:MDLOCKER
cls
md GreyGab
echo Le dossier GreyGab a ete cree.
ping localhost -n 2 > nul.
cls
echo. Definition du code d'acces au dossier. Attention, il ne doit contenir aucun accent ou caractere speciaux.
goto DEUX
:DEUX
echo.
set/p code= Entrer le code d'acces:
cls
ping localhost -n 1 > nul
echo Le code est %code% .
echo.
ping localhost -n 1 > nul
echo Valider la saisie? (O/N)
set/p "choun=>"
if %choun%==O goto TROIS
if %choun%==N goto DEUX
echo. Saisie non valable.
goto DEUX
:TROIS
echo. Le code d'acces est %code%
ping localhost -n1 > nul
goto CINQ
:CINQ
cls
echo.
echo Creation du dossier terminee.
ping localhost -n 2 > nul
cls
echo. Pour ouvrir ou verrouiller le dossier, ce programme est requis.
echo. L'ouvrir pour chaque ouverture ou verrouillage.
ping localhost -n 4 > nul
exit
:END
exit
Merci d'avoir lu ce pavé, et je sais, honte à moi pour les noms de goto.
A voir également:
- Ma variable ne marche pas
- Vba range avec variable ✓ - Forum VB / VBA
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
- Range avec une Variable ✓ - Forum VB / VBA
- Variable d'environnement temp ✓ - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
1 réponse
salut a toi
en faite le problème que tu rencontre est que le batch m'enregistre la variable %code% que lors de son utilisation,
une fois le programme fermé puis ré-ouvert la variable %code% et null (soit vide).
pour pouvoir faire un System de mdp tu est obliger d'avoir ton mdp écrie dans le code ou d'aller le cherché dans un fichier .txt
un exemple tout bete est tres simple de mdp:
voila vite fait ce que tu peux faire ou arrangé a ta convenance
en faite le problème que tu rencontre est que le batch m'enregistre la variable %code% que lors de son utilisation,
une fois le programme fermé puis ré-ouvert la variable %code% et null (soit vide).
pour pouvoir faire un System de mdp tu est obliger d'avoir ton mdp écrie dans le code ou d'aller le cherché dans un fichier .txt
un exemple tout bete est tres simple de mdp:
@echo off
:mdp
cls
veiller entre votre mots de pass:
set /p mdp=
if %mdp% equ acces goto menu
if %mdp% neq acces goto pass
if not defined %mdp% goto pass
:menu
cls
echo mots de passe correct!
pause>nul
goto mdp
:pass
cls
echo fail!
echo retry again
pause>nul
goto mdp
voila vite fait ce que tu peux faire ou arrangé a ta convenance