批处理随机字符串

在for语句中变量为三个随机字符组成的字符串,do语句中对这个变量进行一定的操作:for%%iin(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r... 在for语句中变量为三个随机字符组成的字符串,do语句中对这个变量进行一定的操作:
for %%i in(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do (
... str%%i%%i%%i333 ...),这样子的吗,不熟悉批处理,不知道怎么弄
也谢谢“麦兜”~朋友哈,额,不过你的我倒还没看明白,呵呵~~~辛苦啦!
展开
 我来答
fastslz
2010-03-24 · TA获得超过938个赞
知道小有建树答主
回答量:561
采纳率:100%
帮助的人:912万
展开全部
rem 生成3个随机字符串
@echo off
set n=3
setlocal enabledelayedexpansion
set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
for /l %%a in (1,1,%n%) do call :slz "%%a"
echo %random_str%
pause

:slz
if "%~1"=="" goto:eof
set /a r=%random%%%62
set random_str=%random_str%!str:~%r%,1!

补充回答:
rem 生成3个随机字符串
@echo off
set n=3
rem n=3意思要生成3个随机字符串,如要10个修改n=10
setlocal enabledelayedexpansion
rem 开启变量延迟
set str=abcdefghijklmnopqrstuvwxyz0123456789
for /l %%a in (1,1,%n%) do call :slz "%%a"
rem for循环n次,因为每循环一次得到1个随机字符串,n次便是n个随机字符串
echo %random_str%
pause

:slz
if "%~1"=="" goto:eof
set /a r=%random%%%36
rem 生成小于36的随机数(26个字母加10个数字等于36很好理解的)
set random_str=%random_str%!str:~%r%,1!
rem 字符变量截取及合并,这个要有一定的批处理功底才能看懂,(百度或google关键词“理解字符截取功能”)
麦兜Terran
推荐于2016-12-04 · TA获得超过2571个赞
知道小有建树答主
回答量:1786
采纳率:0%
帮助的人:1170万
展开全部
@echo off&setlocal enabledelayedexpansion
:a
set a=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890
::字母+数字
set/a b=%random%%%62
set/a c+=1
for %%1 in (!b!)do set/p=!a:~%%1,1!<nul
::随机处理62个字符
if not !c! == 2048 goto a
::需要生成多少个字符,这里我写的是2048
pause

::这是我以前写的比较简单的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式