Batch file 批处理密码生成器

Batch file 批处理密码生成器,batch-file,Batch File,我试图从youtube上运行密码生成器。 代码如下: @echo off chcp 1257 setlocal EnableDelayedExpansion set alpha= aąbcčdeęėfghiįjklmnopqrsštuųūvwxyzžAĄBCČDEĘĖFGHIĮJKLMNOPQRSŠTUŲŪVWXYZŽ For /L %%j in (1,1,13) DO CALL:GEN echo Your Random Password is [ %PASSWORD% ] EndLoca

我试图从youtube上运行密码生成器。 代码如下:

@echo off
chcp 1257
setlocal EnableDelayedExpansion
set alpha= 
aąbcčdeęėfghiįjklmnopqrsštuųūvwxyzžAĄBCČDEĘĖFGHIĮJKLMNOPQRSŠTUŲŪVWXYZŽ

For /L %%j in (1,1,13) DO CALL:GEN
echo Your Random Password is [ %PASSWORD% ]

EndLocal
pause

:GEN

For /L %%j in (1,1,10) DO (
if %random% gtr 10000 ( set PASSWORD=%PASSWORD%%random:~0,1% ) else (
set /a i=%random:~1,1%+%random:~1,1%
if !i! gtr 25 set i=25
set PASSWORD=%PASSWORD%!alpha:~%i%,1! )
)
这将返回1个随机密码。我需要10个密码,所以我尝试在这行之前创建for循环:for/L%%j in(1,1,13)DO CALL:GEN。然后返回10行文本,但没有密码:

Active code page: 1257
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Your Random Password is [  ]
Press any key to continue . . .

我如何解决这个问题?

试试这个。您可以向
alp
变量添加/删除字符

@echo off
setlocal enabledelayedexpansion
set "alp=a A b B c C d D E e f F g G h H I I j J k K l L m M n N p P q Q r R s S t T u U v V w W x X y Y z Z 0 1 2 3 4 5 6 7 8 9"
set "cnt=0"
for %%a in (%alp%) do (
    set "rn.!cnt!=%%a"
    set /a "cnt+=1"
)
for /l %%i in (1,1,10) do (
 set "pssw="
 for /l %%a in (1,1,13) do (
    set /a "rand=!random! %% cnt"
    for %%b in (!rand!) do set "pssw=!pssw!!rn.%%b!"
)
 echo Your random password is: [ !pssw! ]
)
样本输出:

Your Random Password 1 is [EÜllxleUOc]
Your Random Password 2 is [RBGEoÄulEF]
Your Random Password 3 is [AfuuAEFwMe]
Your Random Password 4 is [kuaEjuLicr]
Your Random Password 5 is [ModgGsANÄE]
Your Random Password 6 is [MzEqSWJWCB]
Your Random Password 7 is [oÜcrFUqGpj]
Your Random Password 8 is [kRHDCqiciÜ]
Your Random Password 9 is [gUYjjSiicQ]
Your Random Password 10 is [cuuAOÜixVY]

您所显示的脚本无法生成所显示的输出。请更正。您不能那样使用
%i%
。您需要对该变量使用延迟展开。这仍然不起作用,因为你在一个代码块中,你不能做这样的子字符串。为什么要重新发明轮子呢。只要能借用代码就行了。因为我上大学需要这个,杰森·福克纳的方式太复杂了为什么我不自己做这件事?因为我不打算有朝一日使用batch,我不喜欢它。所以我正在尝试修复这个代码。我试图创建自己的密码生成器,但对我来说太难了!。还有,也许你可以解释一下~!我1%%意味着什么?我在网上找不到任何信息var I得到了
的模除(整数余数)的结果!随机!%%alphaCnt
assigned-指向字符串alpha的随机指针。附加
指向的字符!我
您需要两次延迟扩展,因为在(代码块)中,所以使用了带有双倍百分号的伪调用。
Your Random Password 1 is [EÜllxleUOc]
Your Random Password 2 is [RBGEoÄulEF]
Your Random Password 3 is [AfuuAEFwMe]
Your Random Password 4 is [kuaEjuLicr]
Your Random Password 5 is [ModgGsANÄE]
Your Random Password 6 is [MzEqSWJWCB]
Your Random Password 7 is [oÜcrFUqGpj]
Your Random Password 8 is [kRHDCqiciÜ]
Your Random Password 9 is [gUYjjSiicQ]
Your Random Password 10 is [cuuAOÜixVY]