标题: [数值计算] [已解决]批处理%random%怎样随机获取/输出字母? [打印本页]
作者: garyng 时间: 2011-8-11 19:45 标题: [已解决]批处理%random%怎样随机获取/输出字母?
本帖最后由 pcl_test 于 2016-11-16 23:46 编辑
请问%random%可以不是数字吗?可以随机输出字母吗?
我还是个菜鸟,刚接触批处理不久,给出的代码可以解释下吗?
作者: ArdentMan 时间: 2011-8-11 20:09
- @Echo Off&SetLocal EnableDelayedExpansion
- Set "Code=abcdefghijklmnopqrstuvwxyz"
- For /L %%i In (1,1,20) Do (
- Set /A Num=!Random!%%26
- For %%j In (!Num!) Do Echo 随机数字:%%j 随机字母:!Code:~%%j,1!
- )
- Pause>Nul
复制代码
作者: garyng 时间: 2011-8-11 20:27
试过了,还可以
可是输出的只有一位数,能否输出任意位数的?
作者: xjiain 时间: 2011-8-11 20:39
这个问题很简单,只需在二楼的代码中,fot循环最后加入一行。
set abc=!abc!!num!
作者: garyng 时间: 2011-8-11 20:46
对不起~不清楚~
能否列出完整的代码~
作者: garyng 时间: 2011-8-11 20:54
- @Echo Off&SetLocal EnableDelayedExpansion
- Set "Code=abcdefghijklmnopqrstuvwxyz1234567890QWERTYUIOPASDFGHJKLZXCVBNM"
- For /L %%i In (1,1,20) Do (
- Set /A Num=!Random!%%62
- set abc=!abc!!Num!
- For %%j In (!Num!) Do Echo !Code:~%%j,100!
- )
- Pause>Nul
复制代码
我明白啦~
把复制代码
里面的“1”改一改就可以啦~
但是还是要谢谢你们~
作者: wrove 时间: 2011-8-11 21:08
批处理函数库
使用其中的Array取得字母,使用Random取要返回的随机字母的字母数组下标
作者: garyng 时间: 2011-8-12 15:47
回复 7# wrove
好深奥哦~
看不懂啦~
作者: pcl_test 时间: 2016-11-16 23:39
本帖最后由 pcl_test 于 2016-11-16 23:41 编辑
- @echo off
- rem 调用方法call :rletter 结果 长度 大小写[1小写|2大写|默认随机大小写]
- call :rletter s 5 2
- echo;%s%
- pause&exit
- :rletter
- setlocal enabledelayedexpansion
- if "%2" equ "" (set e=1) else (
- if "%2" equ "0" (set e=1) else (
- echo;%2|findstr "^[1-9][0-9]*$" >nul||set e=1
- )
- )
- if defined e echo;Error&goto :eof
- set a=abcdefghijklmnopqrstuvwxyz
- set b=ABCDEFGHIJKLMNOPQRSTUVWXYZ
- set c=AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
- for /l %%a in (1 1 %~2) do (
- set/ai=!random!%%26,j=!random!%%52
- if "%~3" equ "1" (
- for %%i in (!i!) do set s=!s!!a:~%%i,1!
- ) else if "%~3" equ "2" (
- for %%i in (!i!) do set s=!s!!b:~%%i,1!
- ) else (
- for %%i in (!j!) do set s=!s!!c:~%%i,1!
- )
- )
- endlocal&set "%~1=%s%"&goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |