Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[R] Limiter la longueur d'une variable
Auteur Message
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Hello ! Smile
J'aimerai savoir comment limiter une variable en batch.

Bonne nuit



Dernière édition par Raiseit le Mer 5 Oct 2016 - 18:43; édité 2 fois

______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] Limiter la longueur d'une variable 
Tu peux utiliser ce code
Code:

if %variable% == limite_en_nombre commande

exemple:
Code:

if %nombre% == 5 echo le nombre est égal a cinq




Répondre en citant
Message [R] Limiter la longueur d'une variable 
Il veut pas tester une variable, il veut limiter la longueur de la variable Wink

Je ne sais pas précisément ce que tu veux :
- Si tu veux "rogner" une variable, les codes genre %variable:~1,2% pourront t'aider.
- Si tu veux informer à l'utilisateur que ce qu'il a entré (dans un set/p) est trop long, tu peux utiliser un code qui compte le nombre de caractères Smile
Lien ici http://batch.xoo.it/t2494-Compte-les-caracteres-d-une-variables.htm




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
ah d'acoord au temps pour moi alors c'est ce code ^^:
Code:

if defined variable if "%variable:~max,min%"=="" commande




Répondre en citant
Message [R] Limiter la longueur d'une variable 
en gros j'ai un set /p et je voudrai pas qu'on puisse depasser un certain nmbre de caractère sinon ça détruit ma petite boite Very Happy




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Donc sans que l'utilisateur n'appuie sur ENTRÉE? je crois que c'est impossible :/
ou alors la solution risque d'être très complexe, voire même de passer par une commande externe ou un vbs :X




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Impossible, voyon voyons Hugo7 ne sois pas tant pessimiste :

Inspire toi de ce splendide code que j'ai fait et qui accepte même l'effacement d'un carctère (100% BAT By SachaDee) :

Topic Original : http://batch.xoo.it/t4377-BAT-Remplacer-la-saisie-du-mot-de-passe-par-des.h…

Initialement c'est pour cacher la saisie d'un mot de passe. On compte d'abord la taille du Mot de passe et ensuite
si on passe de cette valeur on affiche un message d'erreur et ceçi dinamiquement (pas de ENTER).

Attention copier le code et ne modifiez pas le caractère spécial qu'il y a a la ligne :

if %$T:~-1%== (

Car il est important pour la touche d'effacement.

Code:
    ::By SachaDee® (©) 2015
     
    @echo off&cls
     
    ::Le Mot de Passe
    set "$Mdp=toto1234"
     
    ::La longeur du Mot de passe
    set "$Long=-1"
    for /F "delims=" %%c in ('cmd /D /U /C echo %$Mdp% ^| find /V ""') do (set /a $Long+=1)
     
    ::Les autres variables
    set "$l="
    set "$l1="
    set "$C=0"
     
    :test
    if %$c%==%$Long% goto:Pastrouve
    set "$T="
    cls&echo Entrer votre MDP : %$l1%
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:Pastrouve
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set "$l1=%$l1:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set "$l1=%$l1%*"
      set /a $C+=1)
     
    if "%$l%"=="%$Mdp%" goto:trouve
    goto:test
     
    :trouve
    echo bravo
    Pause >NUL & exit/b
     
    :Pastrouve
    echo Pas trouv‚
    Pause>NUL & exit/b



Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Wow ton code est superbe Sacha, désolé d'avoir été pessimiste Laughing




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Merci beaucoup !
Du coup, ce topic est 2 en 1 pour moi.
Voila ce que j'ai fait avec (juste une partie du code) :
Code:
@echo off
if exist Appfiles goto login
md AppFiles
echo pour pas tous faire peter :
set /p "username= pseudo >"
echo.
set /p "pass= mot de passe >"
echo pass=%pass%>AppFiles\%username%.ini
:login
::::::::::::::::::::::::::::::::::::::::::::: layout login ::::::::::::::::::::::::::::::::::::::::::::::::
cls
color 0f
mode con cols=50 lines=21
echo.
echo          ³ ³ ³ ³ ³   ÚÄ¿ ÚÄÄ ³ / ÚÄÄ ÚÄ¿
echo          ³ ³ ³\³ ³   ³ ³ ³   ³/  ÃÄ  ÃÄÙ
echo          ÀÄÙ ³ ³ ÀÄÄ ÀÄÙ ÀÄÄ ³ \ ÀÄÄ ³\
echo.
echo.
echo              Username
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³                    ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo              Password
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³                    ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
:logusername
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
batbox /g 14 8 /c 0x0f
set /p "logname="
batbox /g 15 10 /d "                   "
if exist AppFiles\%logname%.ini goto logpassword
batbox /g 15 10 /c 0x0c /d "unable to find user"
batbox /g 14 8 /d "                    "
goto logclick
:logpassword
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:testfor
::By SachaDee® (©) 2015
   
    ::Le Mot de Passe
    set "$Mdp="
   
    ::La longeur du Mot de passe
    set "$Long=10"
   
    ::Les autres variables
    set "$l="
    set "$l1="
    set "$C=0"
   for /F "tokens=2 delims==" %%A in ('type AppFiles\%logname%.ini ^| find "pass"') do set "$Mdp=%%A"
     
    :test
    if %$c%==%$Long% goto:Pastrouve
    set "$T="
   batbox /g 13 14 /c 0x0f
   echo ³%$l1%
    For /F "delims=" %%# In ('Xcopy /W "%~f0" "%~f0" 2^>Nul') Do If Not Defined $T Set "$T=%%#"
     
    set "$testenter=%$T:~-1%"
    if not defined $Testenter goto:Pastrouve
     
    if %$T:~-1%== (
     if not %$C%==0 (
      Set "$l=%$l:~0,-1%"
      set "$l1=%$l1:~0,-1%"
      set /a $C-=1)
     ) else (
      Set "$l=%$l%%$T:~-1%"
      set "$l1=%$l1%*"
      set /a $C+=1)
     
    if "%$l%"=="%$Mdp%" goto unlock
    goto:test
     
    :Pastrouve
   batbox /g 13 16 /c 0x0c /d "Wrong password"
   batbox /g 13 14 /d "                    "
   goto logpassword
:unlock
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
attrib -h -s "%logname%.{2227A280-3AEA-1069-A2DE-08002B30309D}"
ren "%logname%.{2227A280-3AEA-1069-A2DE-08002B30309D}" %logname%
batbox /c 0x0f
cls
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo                  Folder unlocked
timeout /t 02>nul
exit


PS : ce qui est avant le :login a été fait a l'arrache pour pas faire péter votre ordi Mort de Rire

Merci beaucoup




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Hello Sacha
Pourrait-tu m'isoler la partie de ton code qui permet de limiter la variable, parce qu'en ce moment, j'ai le brevet et j'ai plus trop le temps... Smile

Bonne nuit




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
En fait je compte la taille du MDP pour avoir cette valeur. si tu veux mettre une valeur fixe :

remplace :

Code:


 ::La longeur du Mot de passe
    set "$Long=-1"
    for /F "delims=" %%c in ('cmd /D /U /C echo %$Mdp% ^| find /V ""') do (set /a $Long+=1)


par

Code:

set $Long=6


si tu veux une longeur max de 6 caractères.

Je sais que mes codes son souvent inlisible....


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Citation:
Sachadee : Je sais que mes codes son souvent inlisible....

Oui bien sur Very Happy
Tu a vu ce que j'ai fait ???
Sinon, merci beaucoup.




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
Hey
Un up pour reposer le même style de question:
Comment on fait pour pas avoir les petites étoiles ?
Vous avez une semaine... :-D

Bonne soirée




______________________________________________________
Raiseit


Des jeux gratuits (ou presque ) <> Serveurs minecraft gratuit <> Notre chaine youtube <> Mon projet

IL y a 10 types de personnes: ceux qui comprennent le binaire et les autres :-)
Visiter le site web du posteur Skype
Répondre en citant
Message [R] Limiter la longueur d'une variable 
pour faire court :

enlève juste le 1 de la valeur %$l1%

Code:
cls&echo Entrer votre MDP : %$l%


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Message [R] Limiter la longueur d'une variable 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



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