bat 自定义位数随机密码生成器

         ~~~~~~~~         因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。 ​​​​
                                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                 ————玛丽亚·杜埃尼亚斯

虽然都说goto能不用尽量不用,但是在批处理里面用起来真香!直接上实例

批处理生成随机密码

代码中有几个功能模块,我缩进了一下,应该比较好看。简单解释一下各模块功能。

cho:进行密码本的选择,默认还是自定义。
default: 表示使用系统自带的密码本
custom:表示自定义密码本
len和her:接收用户输入并判断字符串长度 error:错误处理模块
end:退出程序模块

@echo off 
title 随机密码生成器 By whoim_i
setlocal enabledelayedexpansion
:cho
	echo 请选择密码本:&echo. 1:系统默认密码本(英文大小写加数字) &echo. 2:用户自定义的密码本
	set/p "n=>"
	if %n%==1  goto default
	if %n%==2  goto len
	if %n% gtr 2 goto error
:default
	echo 请设置随机密码的位数:
	set/p "num=>"
	echo ========%num% 位数随机密码生成中========
	set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
		 for /l %%i in (1,1,%num%) do (
   		 set /a num=!random!%%62
   		 call set zf=%%str:~!num!,1%%
   		 set pw=!pw!!zf!
)
echo,&echo 生成的随机密码为: !pw!
pause
goto end
:len
	set "input="
	set /p input=-^> 请输入密码本:
	set a=0
:her
	set u=!input:~%a%,1!
	if not "!u!"=="" (set/a a+=1
	goto her
) else (echo 字符串长度:%a%)
:custom
	echo 请设置随机密码的位数:
	set/p "num=>"
	echo ========%num% 位数随机密码生成中========
	set str=!input!
		for /l %%i in (1,1,%num%) do (
  		set /a num=!random!%%!a!
   		call set zf=%%str:~!num!,1%%
    	set pw=!pw!!zf!
)
echo,&echo 生成的随机密码为: !pw!
pause
goto end
:error
	echo 选择错误,请重新选择!
	goto cho
:end

试运行
在这里插入图片描述
在这里插入图片描述
基础传送门:bat 批处理脚本基础

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值