Associer une variable a un mot dans un fichier ou repertoire

Fermé
V4L36 - 10 déc. 2017 à 00:53
 V4L36 - 12 déc. 2017 à 17:49
j'ais essayer plusieurs commande que j'ais trouver sur votre forum mais pour moi aucune ne fonctionnent . . .
soit il m’affiche rien du tout
soit il m'affiche un message d'erreur comme quoi il ne peut accéder a mon fichier/répertoire
je voudrais par exemple associer aux variables suivante :
%pseudo% le 2 ieme mot de la 1ière ligne de mon fichier test.txt
%clickerpoints% le 2 ième mot de la 3ième ligne de mon fichier test.txt (les chifres)
%mdp% le 4 ième mot de la 3ière ligne de mon fichier test.txt (que se sois des chiffres ou des lettres
fichier test.txt ici :

Pseudonyme : V4L36
Clicker :
[tabulation] points : 458
[tabulation] nombre de connexions : 3
Mot de passe : azerty
fréquence de connexion : 5

j'attend les explication pour comprendre ce langage et non les réponse direct comme certain forum le font . . .
merci de votre aide =D
A voir également:

1 réponse

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
Modifié le 10 déc. 2017 à 07:48
Bonjour,

Je commence par les explications :

- pour parcourir les lignes de ton fichier, tu as besoin de la boucle FOR /F
- pour savoir à quel ligne tu te trouves, tu as besoin d'une variable qui s'incrémente de 1 à chaque tour de boucle
- pour récupérer un mot dans une ligne, tu as besoin d'une boucle FOR /F

Si tu as besoin d'aide pour écrire le script fais-moi signe.



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
0
V4L36 Messages postés 3 Date d'inscription dimanche 10 décembre 2017 Statut Membre Dernière intervention 9 avril 2018 2
10 déc. 2017 à 09:09
merci beaucoup mais pourrais tu me donner un exemple? stp =D j'essai cela
for /f "skip=0 tokens=2 delims= " %a in ("comptes\test.txt") do set pseudo=%a

cela ne me donne rien quand je echo %a ou %pseudo%
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907 > V4L36 Messages postés 3 Date d'inscription dimanche 10 décembre 2017 Statut Membre Dernière intervention 9 avril 2018
10 déc. 2017 à 15:06
Tu vas trop vite, on va déjà commencer par le début, c'est-à-dire parcourir chaque ligne du fichier texte :

cd /d "c:\Users\V4L36\Comptes"
for /f "usebackq tokens=*" %A in ("test.txt") do (echo %A)
pause
0
cela me met " a était inattendu"
0
c'est bon jaui trouver !!! merci beacoup mais j'ai un autre probleme maintenant
je ne trouve pas l'erreur dans ce code :
 set /p pseudo=
if exist comptes\%pseudo%\%pseudo%.txt (
for /f "usebackq tokens=1" %%a in ("comptes\%pseudo%\mdp.txt") do (
%c% 0e 1 " "
%c% 0f 0 "Met ton "
%c% 0b 1 "Mot de passe "
%c% 0b 0 "Mot de passe"
%c% 0f 0 " > "
set /p mdp=
if %mdp% EQU %%a (
goto :suite
) else (
cls
%c% 0c 1 "ERREUR #3 : Movais mot de passe"
%c% 07 1 "appuie sur une touche pour ressayer"
pause >nul
goto :logreg
)
)
) else (
@echo %pseudo% > comptes\%pseudo%\%pseudo%.txt
%c% 0e 1 " "
%c% 0f 0 "Met ton "
%c% 0b 1 "Mot de passe "
%c% 0b 0 "Mot de passe"
%c% 0f 0 " > "
set /p mdp=
%c% 0f 0 "Remet ton "
%c% 0b 1 "Mot de passe "
%c% 0b 0 "Mot de passe"
%c% 0f 0 " > "
set /p mdp2=
if %mdp% EQU %mdp2% (
@echo %mdp% > comptes\%pseudo%\mdp.txt
%c% 0f 0 "Compte "
%C% 0e 0 "%pseudo% "
%c% 0f 1 "a ete cree avec succes !"
%c% 07 1 "appuie sur une touche pour continuer. . ."
) else (
%c% 0c 1 "Erreur #4 : Les pseuso entre ne correspondent pas"
%c% 07 1 "appuie sur une touche pour retourner au menu de login/register"
pause >nul
goto :logreg
)
%c% 0f 0 "Compte "
%C% 0e 0 "%pseudo% "
%c% 0f 1 "a ete cree avec succes !"
)

(le %c% 0a 0 "text" est juste une sorte de echo mai sen couleur) l'erreur fait comme si c’était une "(" ou ")" qui manque mais je ne trouve pas
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907 > V4L36
Modifié le 11 déc. 2017 à 22:20
Difficile de t'aider, il manque la moitié du code.

Un conseil : on évite de mettre un GOTO dans une boucle FOR.

Voilà quelques modifications :

Setlocal enableextensions enabledelayedexpansion

:debut
set /p "pseudo="

if exist "comptes\%pseudo%\%pseudo%.txt" (call :verification)
if not exist "comptes\%pseudo%\%pseudo%.txt" (call :creation)

goto :debut
exit

:verification
for /f "usebackq tokens=1" %%a in ("comptes\%pseudo%\mdp.txt") do (set password=%%a)

%c% 0e 1 " "
call :saisie "Met"
set /p "mdp="

if /i "%mdp%" =="!password!" (goto :suite) else (
cls
%c% 0c 1 "ERREUR #3 : Mauvais mot de passe"
%c% 07 1 "appuie sur une touche pour re-essayer"
pause >nul
goto :verification
)

goto :eof

:saisie
%c% 0f 0 "%~1 ton "
%c% 0b 1 "Mot de passe "
%c% 0b 0 "Mot de passe"
%c% 0f 0 " > "
goto :eof

:creation
@echo %pseudo% > comptes\%pseudo%\%pseudo%.txt
%c% 0e 1 " "
call :saisie "Met"
set /p "mdp="

call :saisie "Remet"
set /p "mdp2="
if /i "%mdp%"=="%mdp2%" (
@echo %mdp% > comptes\%pseudo%\mdp.txt
%c% 0f 0 "Compte "
%C% 0e 0 "%pseudo% "
%c% 0f 1 "a ete cree avec succes !"
%c% 07 1 "appuie sur une touche pour continuer. . ."
) else (
%c% 0c 1 "Erreur #4 : Les pseudos saisis ne correspondent pas"
%c% 07 1 "appuie sur une touche pour retourner au menu de login/register"
pause >nul
goto :eof
)

%c% 0f 0 "Compte "
%C% 0e 0 "%pseudo% "
%c% 0f 1 "a ete cree avec succes !"
goto :eof

rem
0