~~~~~~~~ 因为想要面对一个新的开始,一个人必须有梦想、有希望、有对未来的憧憬。如果没有这些,就不叫新的开始,而叫逃亡。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ————玛丽亚·杜埃尼亚斯
虽然都说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 批处理脚本基础