随机生成windows用户密码(有复杂度要求)并修改的批处理脚本
@echo off setlocal enabledelayedexpansion title adsomeuser随机密码生成脚本 ::设置要生成的密码小写字符长度(位数) set xs=8 ::数字的位数 set sz=2 ::大写字母的位数 set dx=1 echo adsomeuser的随机密码生成中。。。 call :random_string 0123456789 !sz! numstr call :random_string ABCDEFGHIJKLMNOPQRSTUVWXYZ !dx! upstr call :random_string abcdefghijklmnopqrstuvwxyz !xs! lowstr net user adsomeuser !upstr!!lowstr!!numstr! echo,&echo %date%, 办公网 adsomeuser 随机密码 !upstr!!lowstr!!numstr! ::echo,&echo %date%, 办公网 adsomeuser 随机密码 !upstr!!lowstr!!numstr! > d:\adsomeuser_pwd.txt goto :eof ::程序完成退出 :random_string ::输入参数为字典及长度,返回生成的随机字符串 set "pw=" set orgstr=%1 set strlen=%2 call :strlen !orgstr! orglen for /l %%a in (1,1,%strlen%) do ( set /a num=!random!%%!orglen! call set zf=%%orgstr:~!num!,1%% set pw=!pw!!zf! ping 127.0.0.1 -n "1">nul ) set %3=!pw! goto :eof :strlen ::统计字符串长度(限100字符以内) set checkstr=%1 for /l %%i in (1,1,100) do if "!checkstr:~%%i,1!"=="" set %2=%%i&goto :eof
目前只能按固定顺序组合,要实现随机顺序还有待优化....