Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R] Help, mon premier programme
Auteur Message
Répondre en citant
Message [R] Help, mon premier programme 
Hello les gens !
Je commence à programmer en batch et j'essaie de créer un petit programme pour protéger mes fichiers au lycée. J'en suis qu'a l'étape de la vérification du mdp, et ca coince ..

J'ai ce code :
Code:
@ echo off
cls

:2

set /p=mdp Mot de passe ?

if "%mdp%" ==monmdp (goto ok) else (goto pasok)

:ok
echo ok
goto 2

:pasok
echo mauvais mdp


pause


Mais que je rentre un bon ou mauvais mot de passe, il me renvoie toujours "mauvais mdp"

Merci d'avance Smile



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Help, mon premier programme 
Salut Epictoh ! Tout à fait normal Mr. Green

Ce n'est pas :
Epictoh a écrit:

[code]
if "%mdp%" ==monmdp (goto ok) else (goto pasok)
/code]


Mais plutôt :
[code]
if "%mdp%" EQU "%monmdp%" (goto ok) else (goto pasok)
[/code]

Il fallait juste mettre les % avant et après la variable %monmdp%, sinon c'est comme si tu vérifier que le mot de passe correspond à "monmdp" Okay

@ + Wink




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Help, mon premier programme 
Bonjour Epictoh,

ton code a quelques problèmes

au début le :
Code:
@ echo off
est correcte mais pas très bien écrit, pour la lecture, on colle le @ et le E de echo donc ça donnerais ça :
Code:
@echo off

Code:
set /p=mdp Mot de passe ?
n'est pas correcte, dans ce cas, on défini une variable sans nom (ce qui ne défini aucune variable)
je rappelle que set /p fonctionne comme ceci :
Code:
set /p nom_de_la_variable=écriture_avant_l'entrée

donc la version correcte devrais être :
Code:
set /p mdp=Mot de passe ?


Une partie un peu moins évidente a comprendre.
Code:
if "%mdp%" ==monmdp (goto ok) else (goto pasok)

Dans ce cas on compare si : "%mdp%"==monmdp ce qui retournera forcement false et donc le "else".
@IK-DC Les "" ont pour but de ne pas créer d’erreurs si l’une des valeurs est vide ou nulle. Faire
Code:
if t==t echo test
marquera "test" sans soucis mais si une variable est nulle ont aura
Code:
if ==test echo test
ce qui est entièrement incorrecte.
Et == est une version simplifiée de EQU, c'est en clair la même chose mais écris différemment.
Le code correcte de cette partie là est :
Code:
if "%mdp%"=="monmdp"(goto ok) else (goto pasok)

Il faut mettre le "" aux deux endroits sauf si on veut pas que le if s’exécute (voir erreur) Mr. Green .

Code final :
Code:
@echo off
cls

:2

set /p mdp=Mot de passe ?

if "%mdp%"=="monmdp" (goto ok) else (goto pasok)

:ok
echo ok
goto 2

:pasok
echo mauvais mdp


pause





______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [R] Help, mon premier programme 
Merci beaucoup à vous, j'ai tout compris Very Happy
Petite question, une fois mon programme terminé, y a t-il moyen de le crypter ou du moins crypter le mot de passe pour éviter que quelqu'un édite le fichier et trouve le mdp en clair ?



Répondre en citant
Message [R] Help, mon premier programme 
Ep... Epictoh ?!!! Shocked Le youtuber que j'aime tant à la folie pour la vie ? Big suuuuuub *slurp slurp*

Hm je m'égare Embarassed ...
Tu peux toujours le cacher dans des dossiers comme %temp% ou faire ton propre cryptage mais ça risque d'être compliqué... Je crois qu'il y a quelques scripts de cryptage sur le fofo faut chercher un peu Wink

Désolé je suis pas expert en tout ce qui est cryptage Mad mais si quelqu'un a la solution ça m'intéresse Wink




______________________________________________________
C'est en forgeant que l'on devient un forgeron Razz
Visiter le site web du posteur
Répondre en citant
Message [R] Help, mon premier programme 
Stachy a écrit:
Ep... Epictoh ?!!! Shocked Le youtuber que j'aime tant à la folie pour la vie ? Big suuuuuub *slurp slurp*

Hm je m'égare Embarassed ...
Tu peux toujours le cacher dans des dossiers comme %temp% ou faire ton propre cryptage mais ça risque d'être compliqué... Je crois qu'il y a quelques scripts de cryptage sur le fofo faut chercher un peu Wink

Désolé je suis pas expert en tout ce qui est cryptage Mad mais si quelqu'un a la solution ça m'intéresse Wink


Merde on m'a démasqué Mad

Merci pour ton conseil, je vais chercher un peu Very Happy



Répondre en citant
Message [R] Help, mon premier programme 
Après si ils ne sont pas super forts en informatique tu peux toujours stocker ton mdp dans une variable au début du code et utiliser BatchToExe pour passer ton .bat en .exe ce qui le cryptera en supplément Wink mais si tu souhaites mettre ton mot de passe dans un fichier va falloir ruser Wink




______________________________________________________
C'est en forgeant que l'on devient un forgeron Razz
Visiter le site web du posteur
Répondre en citant
Message [R] Help, mon premier programme 
Stachy a écrit:
Après si ils ne sont pas super forts en informatique tu peux toujours stocker ton mdp dans une variable au début du code et utiliser BatchToExe pour passer ton .bat en .exe ce qui le cryptera en supplément Wink mais si tu souhaites mettre ton mot de passe dans un fichier va falloir ruser Wink


Le fichier se trouve dans la salle où on fait de la programmation, donc bon si les gens sont pas capables d'éditer le fichier.. Laughing



Répondre en citant
Message [R] Help, mon premier programme 
Pour crypter le mot de passe tu peut faire ça :
Code:

set Mdp=%Mdp:A=W%
set Mdp=%Mdp:B=X%
...


ça doit être aussi possible via un for mais j'ai pas trop le temps de me pencher dessus ...

@ ++ Okay

Au fait belle chaine youtube ! Mr. Green




______________________________________________________
Coucou, tu veux voir mon Site Web ?? Mort de Rire
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Help, mon premier programme 
Salut, j'avais essayé ta méthode sur les PC du CDI sous Windows XP et ça ne donnait aucun résultat alors que je l'avais bien rédigé je crois Mr. Green
Mais sinon il souhaite une vérification de mot de passe pour avoir accès à ses fichiers, et ça c'est plutôt compliqué à faire ^^'




______________________________________________________
C'est en forgeant que l'on devient un forgeron Razz
Visiter le site web du posteur
Répondre en citant
Message [R] Help, mon premier programme 
Après tu peut passer par serveur mais si c'est au lycée , Y'a des parefeux je pense 




______________________________________________________
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Help, mon premier programme 
Tu peux également utiliser un stream de données alternées (ADS) :

Code:
echo TonMDP >test.txt:mdp


Le mot de passe sera accroché au fichier test.txt mais invisible.

Pour récuperer le MDP :

Code:
set /p LeMDP=<test.txt:mdp


Ou sinon tu peux également créer un clé de registre avec ton mdp.

Mais de toutes façon la manière de récuperer le MDP sera visible dans ton BAT.

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] Help, mon premier programme 
sachadee a écrit:
Tu peux également utiliser un stream de données alternées (ADS) :

Code:
echo TonMDP >test.txt:mdp


Le mot de passe sera accroché au fichier test.txt mais invisible.

Pour récuperer le MDP :

Code:
set /p LeMDP=<test.txt:mdp


Ou sinon tu peux également créer un clé de registre avec ton mdp.

Mais de toutes façon la manière de récuperer le MDP sera visible dans ton BAT.

Okay


Oh c'est intéressant ça Surprised mais si on a activé la vue des fichiers invisibles on le voit ou pas ? Neutral
Après si on passe le code en .exe il faut voir le test.txt en visible pour avoir accès au mdp Smile




______________________________________________________
C'est en forgeant que l'on devient un forgeron Razz
Visiter le site web du posteur
Répondre en citant
Message [R] Help, mon premier programme 
J'ai fixer le code je pense:
Code:

@ echo off
set mdp=123
cls

:2

set /p reponse=Mot de passe ?
if %reponse%==%mdp% goto pasok

:ok
echo ok
goto 2

:pasok
echo mauvais mdp
pause

Tu n'a pas mis de variable , et tu tes tromper dans le set /p




______________________________________________________
euuh
vous voulez quelque chose?
Répondre en citant
Message [R] Help, mon premier programme 
Salut, désolé j'ai pas beaucoup le temps de poster en ce moment, mon problème est résolu Smile



Message [R] Help, mon premier programme 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch