早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求bat随机数范围内生成,每个随机数之前都有一个字母的代码RT,我想生成8个随机数.其中4个为w1,w3,w5,w7,前面一个字母都是f,范围是1~21.还有4个为w2,w4,w6,w8,前面一个字母都是y,范围是1~5.接着问一

题目详情
求bat随机数范围内生成,每个随机数之前都有一个字母的代码
RT,我想生成8个随机数.其中4个为w1,w3,w5,w7,前面一个字母都是f,范围是1~21.还有4个为w2,w4,w6,w8,前面一个字母都是y,范围是1~5.
接着问一下:怎么把这些变量输出到一个记事本里?
这是我写的代码总是报错:
set /a w1="f%random%%%(21-1)+(1+1)"
set /a w2="y%random%%%(5-1)+(1+1)"
set /a w3="f%random%%%(21-1)+(1+1)"
set /a w4="y%random%%%(5-1)+(1+1)"
set /a w5="f%random%%%(21-1)+(1+1)"
set /a w6="y%random%%%(5-1)+(1+1)"
set /a w7="f%random%%%(21-1)+(1+1)"
set /a w8="y%random%%%(5-1)+(1+1)"
cd.>>1.txt
for /l %%a in (1,1,8) do echo !w%%a!>1.txt
望求大神指教,系统为Windows8.1.
▼优质解答
答案和解析

你的代码存在的问题:

没有开启本地环境变量延迟扩展,但是用了!来扩展变量

set /a的运算中不应该出现字母,除非是十六进制的运算

>表示覆盖,所以输出了8次,但最终记事本里只有一个结果

优化后的代码,用for循环

@Echo Off
SetLocal EnableDelayedExpansion
::CODE BY aiwozhonghuaba POWERD BY iBAT 1.6
For /l %%i In (1 1 8) Do (
Set /A Jud=%%i %% 2
Set /A w%%i=!Random! %% 21 + 1
IF "!Jud!" EQU "1" (
Set w%%i=f!w%%i!
) ELSE (
Set w%%i=y!w%%i!
)
Echo !w%%i!>>test.txt
)
看了求bat随机数范围内生成,每个...的网友还看了以下:

随着手机、平板电脑内置摄像头的像素越来越高,越来越多的人在外出时舍弃了数码相机,而改用手机和平板进  2020-05-17 …

在信息技术飞速发展的今天,手机已成为人们的必需品.随着手机的不断更新,很多废旧手机被随意丢弃.这种  2020-06-23 …

随着手机无线上网业务的普及,拥有手机的中小学生用手机上网日渐时鬃。而一些手机网站上的不良信息也在中  2020-07-15 …

近几年来,手机悄然走进校园,成为中学生的爱用品。据调查,目前有60-70%的中学生佩带了手机,80  2020-07-19 …

随着手机的发展,“微信”越来越成为人们交流的一种方式.某机构对“使用微信交流”的态度进行调查,随机  2020-07-30 …

随着手机和电脑的普及,人们收到垃圾短信也越来越多,小明在某社区进行垃圾短信问卷调查,从中随机抽取10  2020-11-19 …

英语翻译目前,随着通讯业的迅猛发展,手机作为其中重要的组成部分也越来越普及.随着手机功能的日趋多样化  2020-12-05 …

英语翻译手机短信业务至2000年由中国移动和中国联通全面开通至今,虽然才七、八年的历史,但随着手机的  2020-12-05 …

(2010•鸡西)在信息技术飞速发展的今天,手机已成为人们的必需品.随着手机的不断更新,很多废旧手机  2020-12-09 …

随着手机普及率的提高,有些人开始过分依赖手机,一天中使用手机时间过长而形成了“手机瘾”,某校学生会为  2020-12-26 …