注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT教程&资料
» 批处理set /a 基本用法
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
随风
发短消息
加为好友
随风
当前离线
UID
7
帖子
1759
精华
3
积分
5387
PB
5024
技术
51
捐助
210
阅读权限
254
在线时间
2362 小时
注册时间
2007-10-26
最后登录
2012-10-19
荣誉版主
帖子
1759
积分
5387
技术
51
捐助
210
注册时间
2007-10-26
1
楼
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2008-3-5 12:32
|
显示全部帖子
[原创]
批处理set /a 基本用法
set /a 基本用法
:: code by 随风 @bbs.bathome.net 2008-03-05
set /a 是批处理中进行算术的命令。很多新手对它的常规用法都不太了解,这里作些简单通俗的介绍,
错误地方,欢迎指出。用法很多,这里只介绍几种常用的,(主要是我也只会这几种)
特点: 可进行加、减、乘、除、取余操作。 它们的符号分别是 + - * / %% set /a 可计算的数值,
单个数值且最终运算结果只能大于或等于-2的31次方,小于2的31次方",
若超出这个数,则会把这个数当作字符串来处理。 只能对整数进行计算,含小数的会忽略小数。
如:9除以2会等于4
格式:
@echo off
set /a var=1+2
echo %var%
pause
也可以连续计算,按先括弧里后括弧外,先乘除后加减的顺序
@echo off
set /a var=(1+2)*5-3/4
echo %var%
pause
赋值为数字时,还可以连续赋值。
如:set var=12 set num=3 set str=100 这时,可以利用set /a 进行连续赋值,只要用逗号分开每个变量名就可以了。
如: set /a var=12,num=3,str=100 利用逗号,在计算时也可以这样连续。
如: set /a var=1+2,num=3*5,str=100/50
另外:值得注意一点的是,在set /a 计算时,可以省略变量的%号或!号,极为方便。
如:
@echo off
set var=100
set num=220 set /a str=var-num (这句,实际就是set /a str=%var%-%num%)
echo %num%
pause
是不是方便很多。。
最后一点,取余。 符号 %%
@echo off
set /a var=
100
%%61
echo %var%
pause
结果是 39 其实就是用
100
除以61的余数。需注意的是 若需取余的数,比被取的小,那么结果就是需取余的数。
感谢16楼朋友的提醒,应该是
100
%%61 开始写成了
200
%%61
如:
@echo off
set /a var=10%%20
echo %var%
pause
结果等于 10 简单的理解为: %% 号左边的数字比又边的小结果就仍是左边的数字。
当然 取余绝不是这么简单,但我也就理解这么多了。具体的还是靠多实践吧。
[
本帖最后由 随风 于 2009-3-17 20:56 编辑
]
4
评分人数
Hello123World:
乐于助人
技术 + 1
ieutk:
精品文章
PB + 5
foxJL:
精品文章
PB + 5
youxi01:
PB + 8
收藏
分享
技术问题请到论坛发帖求助!
随风
发短消息
加为好友
随风
当前离线
UID
7
帖子
1759
精华
3
积分
5387
PB
5024
技术
51
捐助
210
阅读权限
254
在线时间
2362 小时
注册时间
2007-10-26
最后登录
2012-10-19
荣誉版主
帖子
1759
积分
5387
技术
51
捐助
210
注册时间
2007-10-26
2
楼
发表于 2008-3-5 20:10
|
显示全部帖子
好,大家都说一点,这个教程就会慢慢完美了。
对于这个<<,>> 逻辑移位 一直是一知半解,所以也没写出来,看了foxjl的帖就明白了。
set /a var=x^<^<y
公式中 ^<^< 代表乘2,y 代表用 x 乘2的次数。 (^>^> 则代表除法。)
复制代码
技术问题请到论坛发帖求助!
TOP
随风
发短消息
加为好友
随风
当前离线
UID
7
帖子
1759
精华
3
积分
5387
PB
5024
技术
51
捐助
210
阅读权限
254
在线时间
2362 小时
注册时间
2007-10-26
最后登录
2012-10-19
荣誉版主
帖子
1759
积分
5387
技术
51
捐助
210
注册时间
2007-10-26
3
楼
发表于 2008-3-6 00:14
|
显示全部帖子
回复 6楼 的帖子
多谢指出,已在顶楼改正。
技术问题请到论坛发帖求助!
TOP
返回列表
意见反馈
出题挑战
新手练功
BAT求助&讨论
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]