【第三方发布】SimpleSoft: 生成10位数4模块的验证码
bat吧
全部回复
仅看楼主
level 7
wwzzxx1380 楼主
三楼上代码
2018年04月21日 07点04分 1
level 7
wwzzxx1380 楼主
@echo off
setlocal EnableDelayedExpansion
if /i "%~1"=="/?" (
echo 验证码生成第三方
echo.
echo %~nx0 filename num
echo filename 输出的文件名
echo num 要生成验证码的数量.必须为正整数
echo.
exit /b
)
set word=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
for /l %%i in (1,1,200) do if %~2==%%i (goto next)
echo 输入的数字超出范围^(1-200^)
exit /b:next
set num=0
set time=0
:1
if !num!==10 set/p=-<nul >>%~1
if !num!==20 set/p=-<nul >>%~1
if !num!==30 set/p=-<nul >>%~1
if !num!==40 set/a num=0 & echo.>>%~1 & set/a time+=1 & if !time!==%~2 echo 生成完毕. & exit /b
set /a rd=%random%%%52
set/p=!word:~%rd%,1!<nul >>%~1
set /a num+=1
goto 1
2018年04月21日 07点04分 2
level 7
wwzzxx1380 楼主
完善了一下,修改了楼上所说的BUG
@echo off
setlocal EnableDelayedExpansion
if /i "%~1"=="/?" (
echo 验证码生成第三方
echo.
echo YZM filename num
echo filename 输出的文件名,也可接受完整的路径
echo num 要生成验证码的数量.必须为正整数
echo.
exit /b
)
set word=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
for /l %%i in (1,1,200) do if %~2==%%i (goto next)
echo 输入的数字超出范围^(1-200^)
exit /b:next
set num=0
set time=0
:1
if !num!==15 set/p=-<nul>>%~1
if !num!==30 set/p=-<nul>>%~1
if !num!==45 set/p=-<nul>>%~1
if !num!==60 set/a num=0 & echo.>>%~1 & set/a time+=1 & if !time!==%~2 echo 生成完毕. & exit /b
set /a rd=%random%%%62
set/p=!word:~%rd%,1!<nul>>%~1
set /a num+=1
goto 1
2018年05月13日 05点05分 5
level 1
66666
2018年05月14日 09点05分 7
1