我不是程序员,我需要一个简单的蝙蝠应用程序,它生成随机密码,预定义的单词和数字在1到99之间。 例如,我定义了单词" jumper"," donkey"和"格式",应用程序应输出密码,如" jumper25"或"格式91"。 这些单词应该都有6个字母和2位数,最后是密码8。 当然,我应该可以添加更多的单词。
我希望有人能解决这个问题,非常感谢你。
答案 0 :(得分:2)
尝试一下:
@echo off
:: The List of name
set "$List=jumper format donkey"
for %%a in (%$List%) do call:pass %%a
pause
exit/b
:pass
set /a $Random=%random% %% 99+1
set "$Random=0%$Random%"
set "$Password=%1%$Random:~-2%"
echo %$Password%
编辑:
在列表中随机选择一个单词:
@echo off
:: The List of name
set "$List=jumper format donkey"
setlocal enabledelayedexpansion
set "$NbElem="
::Count the number of element in the LIST
for %%a in (%$List%) do set /a $NbElem+=1
set "$c=1"
set /a $R=%random% %% !$NbElem!+1
for %%a in (%$List%) do (
if !$c!==!$R! call:pass %%a
set /a $c+=1)
pause
exit/b
:pass
set /a $Random=%random% %% 99+1
set "$Random=0%$Random%"
set "$Password=%1%$Random:~-2%"
echo %$Password%
答案 1 :(得分:2)
不像以前那样优雅,但应该按预期工作。
编辑:我更新了代码。如果您需要将其封装到循环中并生成多个密码,它现在运行得更快。还想表明它也适用于大多数特殊字符。此时它不会与感叹号,冒号和管道一起使用。我也可以解决这个问题。
@echo off
setlocal enabledelayedexpansion
REM GET NUMBER OF WORDS IN THE FILE
FOR /F "tokens=1,2 delims=[]:" %%G IN ('findstr /R /C:"^:::......$" "%~f0" ^|find /N /V ""') do SET "WORD%%G=%%H" &SET NUMWORDS=%%G
REM GET RANDOM NUMBER between 1 -99
set /a RAND_NUM=%random% %% 99 + 1
REM ADD LEADING ZERO IF NUMBER IS LESS THAN 10
IF %RAND_NUM% LSS 10 SET RAND_NUM=0%RAND_NUM%
REM GET A RANDOM NUMBER TO CHOSE ONE OF THE PASSWORDS
SET /A RAND_WORD_NUM=%RANDOM% %% %NUMWORDS% + 1
ECHO !WORD%RAND_WORD_NUM%!%RAND_NUM%
pause
GOTO :EOF
:::jumper
:::donkey
:::format
:::passwd
:::&*^,$;