中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 11:38
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]从字符串中随机取字符
可打印版本  856 / 7
第1楼 ruisoft 发表于 2010-05-07 12:26
初级用户 发帖 57 积分 93
[求助]从字符串中随机取字符
我想从字符串 WORDS 中随机取50个字符。本人写的代码如下,但得不到想要的结果。请高手们帮忙改正,本人先谢谢啦!

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET WORDS=abcdefghijklmnopqrstuvwxyz1234567890

SET STR=
FOR /L %%T IN (1,1,50) DO (
SET /A L=!RANDOM!%%36

SET WORD=%%WORDS:~!L!,1%%
SET STR=!STR!!WORD!
)

ECHO STR===!STR!

PAUSE

GOTO :EOF

变量 WORD 的赋值不正确!

[ Last edited by ruisoft on 2010-5-7 at 12:32 ]
第2楼 Hanyeguxing 发表于 2010-05-07 12:41
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
第3楼 Hanyeguxing 发表于 2010-05-07 12:44
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
或者写成
或是:

[ Last edited by Hanyeguxing on 2010-5-7 at 12:50 ]
第4楼 ruisoft 发表于 2010-05-07 12:46
初级用户 发帖 57 积分 93
CALL SET STR=!STR!%%WORDS:~!L!,1%%

此段代码如何理解?能否给个详细的说明呢?
第5楼 ruisoft 发表于 2010-05-07 12:47
初级用户 发帖 57 积分 93
CALL 不是子程序调用吗?
第6楼 Hanyeguxing 发表于 2010-05-07 12:51
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
在这里,call进行嵌套的变量扩展
第7楼 ruisoft 发表于 2010-05-07 12:56
初级用户 发帖 57 积分 93
谢谢你!
第8楼 Hanyeguxing 发表于 2010-05-07 13:00
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
上面三个示例:
第一个写起来最简单,但耗时比第二要长
第二个运行最快,但比第一个写起来麻烦
第三个,只是个思路而已,集中了前两个的缺点。。。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023