qiaopans5
nanxielu8
gang5ech
juejio44ng
rangt55uch
ang88iyon
shunl55nl
要求每个密码里都有字母和数字的
如何用批处理生成随机的密码在一个文本里,要求是 小写字母+数字,可以指定长度,密码不重复
答案:3 悬赏:80 手机版
解决时间 2021-03-17 06:00
- 提问者网友:太高姿态
- 2021-03-16 05:17
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-03-16 06:43
@echo off
set 密码长度=9
:start
set /a m=%random%
set /a m=m%%36+1
if %m%==1 set xy=0&goto :xy
if %m%==2 set xy=1&goto :xy
if %m%==3 set xy=2&goto :xy
if %m%==4 set xy=3&goto :xy
if %m%==5 set xy=4&goto :xy
if %m%==6 set xy=5&goto :xy
if %m%==7 set xy=6&goto :xy
if %m%==8 set xy=7&goto :xy
if %m%==9 set xy=8&goto :xy
if %m%==10 set xy=9&goto :xy
if %m%==11 set xy=a&goto :xy
if %m%==12 set xy=b&goto :xy
if %m%==13 set xy=c&goto :xy
if %m%==14 set xy=d&goto :xy
if %m%==15 set xy=e&goto :xy
if %m%==16 set xy=f&goto :xy
if %m%==17 set xy=g&goto :xy
if %m%==18 set xy=h&goto :xy
if %m%==19 set xy=i&goto :xy
if %m%==20 set xy=j&goto :xy
if %m%==21 set xy=k&goto :xy
if %m%==22 set xy=l&goto :xy
if %m%==23 set xy=m&goto :xy
if %m%==24 set xy=n&goto :xy
if %m%==25 set xy=o&goto :xy
if %m%==26 set xy=p&goto :xy
if %m%==27 set xy=q&goto :xy
if %m%==28 set xy=r&goto :xy
if %m%==29 set xy=s&goto :xy
if %m%==30 set xy=t&goto :xy
if %m%==31 set xy=u&goto :xy
if %m%==32 set xy=v&goto :xy
if %m%==33 set xy=w&goto :xy
if %m%==34 set xy=x&goto :xy
if %m%==35 set xy=y&goto :xy
if %m%==36 set xy=z&goto :xy
:xy
set pass=%pass%%xy%
set /a n+=1
if %n%==%密码长度% goto :end
goto :start
:end
echo 随机密码是:%pass%
pause
echo %pass%>D:\文件.txt 可以保存密码,放到:end后一行。
set 密码长度=9
:start
set /a m=%random%
set /a m=m%%36+1
if %m%==1 set xy=0&goto :xy
if %m%==2 set xy=1&goto :xy
if %m%==3 set xy=2&goto :xy
if %m%==4 set xy=3&goto :xy
if %m%==5 set xy=4&goto :xy
if %m%==6 set xy=5&goto :xy
if %m%==7 set xy=6&goto :xy
if %m%==8 set xy=7&goto :xy
if %m%==9 set xy=8&goto :xy
if %m%==10 set xy=9&goto :xy
if %m%==11 set xy=a&goto :xy
if %m%==12 set xy=b&goto :xy
if %m%==13 set xy=c&goto :xy
if %m%==14 set xy=d&goto :xy
if %m%==15 set xy=e&goto :xy
if %m%==16 set xy=f&goto :xy
if %m%==17 set xy=g&goto :xy
if %m%==18 set xy=h&goto :xy
if %m%==19 set xy=i&goto :xy
if %m%==20 set xy=j&goto :xy
if %m%==21 set xy=k&goto :xy
if %m%==22 set xy=l&goto :xy
if %m%==23 set xy=m&goto :xy
if %m%==24 set xy=n&goto :xy
if %m%==25 set xy=o&goto :xy
if %m%==26 set xy=p&goto :xy
if %m%==27 set xy=q&goto :xy
if %m%==28 set xy=r&goto :xy
if %m%==29 set xy=s&goto :xy
if %m%==30 set xy=t&goto :xy
if %m%==31 set xy=u&goto :xy
if %m%==32 set xy=v&goto :xy
if %m%==33 set xy=w&goto :xy
if %m%==34 set xy=x&goto :xy
if %m%==35 set xy=y&goto :xy
if %m%==36 set xy=z&goto :xy
:xy
set pass=%pass%%xy%
set /a n+=1
if %n%==%密码长度% goto :end
goto :start
:end
echo 随机密码是:%pass%
pause
echo %pass%>D:\文件.txt 可以保存密码,放到:end后一行。
全部回答
- 1楼网友:不想翻身的咸鱼
- 2021-03-16 08:44
@echo off
setlocal enabledelayedexpansion
set s=abcdefghijklmnopqrstuvwxyz0123456789
set m=100
set l=9
(for /l %%j in (1,1,%m%) do (
set p=
for /l %%i in (1,1,%l%) do (
set /a n=!random! %% 36
call set p=!p!%%s:~!n!,1%%)
echo !p!))>pass.txt set m=100 设置生成密码的数量,set l=9设置密码长度 set s=abcd那行设置可以字符,如果可用字符增加减少的话需要修改第9行最后的数字36.(当然需要的话也可以改成批处理自动计算)
- 2楼网友:三千妖杀
- 2021-03-16 07:04
做这个的人想了不少心思,是可以省去call的 利用变量截取达到大小写转换
你认为我会没看懂?一定要用call?我不能换种写法?别把你想的跟什么似的.
不用call 这段代码就不能正常运行就这么简单 亮点就在if语句那
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯