我找到了这个批处理文件密码生成器:
rem 16 stings pwd
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
set pwd=
FOR /L %%b IN (0, 1, 16) DO (
SET /A rnd_num=!RANDOM! * 62 / 32768 + 1
for /F %%c in ('echo %%alfanum:~!rnd_num!^,1%%') do set pwd=!pwd!%%c
)
echo pwd=%pwd%
我将其放入批处理文件:rand.bat 但是,当我从另一个批处理文件调用 rand.bat 时,环境变量 pwd 不再可用。我如何让它持久化到调用批处理文件中?
退出被调用的批处理意味着
Endlocal
丢弃所有创建的局部变量。要克服这个问题,请包含一个
Endlocal
命令并在同一行上重复 set 命令。由于cmd.exe 的复杂内部工作(通常需要 DelayedExpansion),此行在两个范围内,因此可以重新创建变量的内容。