批处理中%%的问题

@echooffecho请输入想产生的随机数的最大值,如1-100就输入100set/ps=echo请输入显示的个数set/pg=clssetcount=0:loopse... @echo off
echo 请输入想产生的随机数的最大值,如1-100就输入100
set /p s=
echo 请输入显示的个数
set /p g=
cls
set count=0
:loop
set /a num=%random%%%%s%+1
if not defined num%num% (
set num%num%=%num%
set /a count+=1
call echo %%num%%
)
if %count% lss %g% goto loop
pause>nul
在bat 中引用变量用 % % 那set /a num=%random%%%%s%+1 其中=%random%
是随机数变量那后面的两个%s%是上面定义的变量中间的%%是什么意思
还有if not defined num%num% ( 这一行中的num%num%又怎么理解呢
还有
call echo %%num%% 中的%%num%%怎么有4个%是什么意思
顺便说一下if not defined是什么意思
实在万分感谢
展开
 我来答
丨情冇独钟丨
2009-02-03 · TA获得超过6220个赞
知道大有可为答主
回答量:2188
采纳率:50%
帮助的人:3454万
展开全部
1.
set /a num=%random%%%%s%+1
夹在中间的%%是指求模的意思,也就是用随机数除以%s%后得出的余数.
假如%s%的值为100,那么%random%%%100就是用随机数除以100然后取余数,此时余数就只会在0-99之间了,后面再+1,num的值也就是1-100之间了.

2.
if not defined num%num%
如果num%num%这个变量未定义或为空值,则执行后面的语句.if not defined就是检测变量是否被定义或为空值.

3.
call echo %%num%%
在if或for语句中设置的变量,如果要再次在if或for命令内使用.此时的%num%为局部延迟变量,是不会被识别的,用call扩展到全局变量就可以显示了,此时一个%号就要用两个表示%%.
或开始延迟变量后,%号用!来表示:echo !num!
另:
此批处理不需要call,直接echo %num%就行,它还未涉及到延迟变量.

说的不够专业,不知你理解否~?.呵...
万山数据
2024-11-14 广告
实时数仓处理是我们北京万山数据科技有限公司数据处理能力的核心之一。它基于先进的流处理技术,能够实时捕获、处理和分析海量数据,确保数据的时效性和准确性。通过构建高效的实时数据管道,我们能够实现数据的即时入库与查询,为业务决策提供强有力的支持。... 点击进入详情页
本回答由万山数据提供
乘若蕊夷英
2019-02-17 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:637万
展开全部
%n
用作参数变量,n={0-9};如:%0代表本身,%1-%9代表某个替代的变量;
%i;%%i的区别:在cmd窗口模式用%i,批处理模式中则要用%%i;两种意思是一样的,但不同模式,使用的%个数不一样!
%a%
这个是变量的引用;假定
set
a=
定义一个变量,那个显示变量a
就是
echo
%a%
$
这个符号在prompt命令中,后跟一个字母被dos定义了特殊意义;如
prompt
$g$p表示提示字符是当前驱动器的目录,$t显示即时时间;在doskey的宏命令中,变量不再是%a,而是$a,即变量要用$开头;在延迟变量中,变量也是以$开头;
-------------------------------------------------------------------------------------------------------
都是变量的一些用法,建议你参考一些《p处理高级教程》,里面讲得交详细;可以到我网盘提取资料;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式