高分求编写批处理脚本,生成随机字符串

我需要两个批处理文件randstr.bat生成指定长度的随机字符串,字符串组成部分为大写字母和数字,并且可以在外部获取到生成的字符串调用方式setresult=""cal... 我需要两个批处理文件
randstr.bat
生成指定长度的随机字符串,字符串组成部分为大写字母和数字,并且可以在外部获取到生成的字符串
调用方式
set result=""
call randstr.bat 长度 %result%
echo %result%
uuid.bat
跟上述的类似,只不过生成的字符串必须是符合uuid格式的
展开
 我来答
付芝华
推荐于2016-09-28 · TA获得超过566个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:391万
展开全部

randstr.bat

@echo off
set 密码长度=%1
: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%


uuid.bat

call randstr.bat 长度
echo;%pass%
pause
更多追问追答
追问
提示命令语法不正确。。。
我这里有两个这个脚本,你也可以帮我改成支持外部调用和返回字符串给外部的功能。

还有,你可以不用谢这么长的,用索引的方式即可实现了,类似查表法
可以么?
追答
@echo off
Setlocal Enabledelayedexpansion
set Str=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@#$,./\?_~
set /a 长度=8
for /l %%i in (1,1,8888) do (if "!Str:~0,%%i!"=="!Str!" set StrSum=%%i&goto :result)
:result
set /a Num+=1,StrNum=%Random%%%%StrSum%
set result=%result%!str:~%StrNum%,1!
if %Num% lss %长度% goto :result
call randstr.bat 8
echo 随机字符串是:%result%
pause

本机验证无误,如果你使用发现代码报错,是你的代码问题,贴上来我给你改。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式