mam ten fragment kodu. Jest to w zasadzie losowy generator haseł. podaję długość hasła, chcę powiedzieć „10”, a następnie otrzymuję losowe hasło wygenerowane z 10 liter cyfr i symboli i zapisane w pliku txt. Problem występuje, gdy tworzę drugi. Jeśli znów chcę hasło o długości „10”, ale daje mi tylko hasło powiedzmy 3 lub 4. to zależy. Wszelkie pomysły na to, gdzie popełniłem błąd? każda pomoc jest bardzo ceniona.
@Echo Off
mode con: cols=70 lines=25
:start
color 8a
echo ----------------------------------------------------------------------
echo -------- Password Generator -------
echo ----------------------------------------------------------------------
echo.
echo.
Echo Hello %username%
set /P lengthnumberuser="What length do you want your password to be?:
cls
Setlocal EnableDelayedExpansion
Set _RNDLength=%lengthnumberuser%
Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%%$$@@**
Set _Str=%_Alphanumeric%987654321
:_LenLoop
IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop
SET _tmp=%_Str:~9,1%
SET /A _Len=_Len+_tmp
Set _count=0
SET _RndAlphaNum=
:_loop
Set /a _count+=1
SET _RND=%Random%
Set /A _RND=_RND%%%_Len%
SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1!
If !_count! lss %_RNDLength% goto _loop
echo.
echo.
echo.
cls
Echo Password is: !_RndAlphaNum!
set /p _detail=Please Record a description for this password:
echo.
echo %date%---%_detail%----!_RndAlphaNum! >> RandPass.txt
echo Password Saved with Details to RandPass.txt for future reference.
echo.
echo.
set /p _newpass= Would you like to create another password ?[y/n]:
cls
If /i "%_newpass%"== "y" GOTO :start else :end
:end
passwords
batch-file
cmd.exe
Aaron Rice
źródło
źródło
%_RNDLength%
przez!_RNDLength!
If !_count! lss %_RNDLength% goto _loop
i wciąż brak szczęścia dał 10 po raz pierwszy .. potem tylko te 5 cyfr po raz drugiSet /a _count+=1
naSet /a !_count!+=1
Odpowiedzi:
Nie lubię zbyt długich nazw zmiennych, ale to działa:
BTW: wypisywanie kilku pustych linii, a następnie cls nie ma dla mnie sensu.
źródło