Batch file 生成最小和最大长度的密码:批处理文件

Batch file 生成最小和最大长度的密码:批处理文件,batch-file,Batch File,尝试使用给定字符生成密码,但需要在批处理文件中定义最小和最大密码字符串长度 我创建了一个批处理文件,该文件可以完美地生成密码字符串,但我无法在“最小长度”和“最大长度”字段中定义字符串的长度 @Echo Off Setlocal EnableDelayedExpansion Set Min_RNDLength=8 Set Max_RNDLength=30 Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0

尝试使用给定字符生成密码,但需要在批处理文件中定义最小和最大密码字符串长度

我创建了一个批处理文件,该文件可以完美地生成密码字符串,但我无法在“最小长度”和“最大长度”字段中定义字符串的长度

@Echo Off
Setlocal EnableDelayedExpansion
Set Min_RNDLength=8
Set Max_RNDLength=30
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 Random string is !_RndAlphaNum!

不知道如何克服这个问题。

我会这样做:

@Echo Off
Setlocal EnableDelayedExpansion
Set /A Min_RNDLength=8, Max_RNDLength=30
Set Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

rem Randomize internal random number (optional)
rem for /L %%i in (1,1,%time:~-1%) do set /A !random!

rem Get random lenght between limits:
set /A RNDLength=%Random% %% (Max_RNDLength-Min_RNDLength) + Min_RNDLength

Set "RndAlphaNum="
rem Generate such a number of random characters from Alphanumeric set (62 characters)
for /L %%i in (1,1,%RNDLength%) do (
   set /A RND=!random! %% 62
   for %%r in (!RND!) do set "RndAlphaNum=!RndAlphaNum!!Alphanumeric:~%%r,1!"
)

Echo Random string is %RndAlphaNum%

你尝试了什么,你被困在哪里了?这是一个简单的数学集合/A RNDLength=%Random%%%Max\u RNDLength-Min\u RNDLength+Min\u RNDLength我刚才试过了,但不确定该代码放在哪里,仍然不起作用,你能进一步解释一下吗answering@aschipfl这个最小和最大长度代码运行不正常,它不工作不是一个精确的错误描述,所以请具体说明!不要评论,你的问题相应地…这很好