bat命令高手请进--使用中的数学问题

比如说,一段命令:
set aa=3
if %aa%==3 echo %aa%+1
输出是3+1
可是我想要的是4 ,直接数学运算,不是字符串的组合。

我想把aa 这个变量的值加1,就是找不到bat里面的数学运算怎么实现的。
(高手应该不会觉得难)

用set命令参与简单计算:
Set/a 的作用是使set能支持简单的数学计算。
举例:@echo off
set /p input=请输入计算表达式:
set /a var=%input%
echo 计算结果:%input%=%var%
pause
在此例中/a参数,再把input变量的值赋给var,实际是把变量的值赋给var。
举例:@echo off
set/a a=1+1,b=2+3,c=3+5
::类似于高级语言变量的设置
echo %a% %b% %c%
set/a a+=1
::相当于 a=%a%+1
echo %a%
pause
这里需要注意的逻辑运算和求模运算的操作需要给运算符加双引号或者用转义字符“^”
举例:@echo off
set /p n=请输入2的几次方:
set /a num=1^<^<n
echo 2的%n%次方是:%num%
set /a num=%num% "|"10111
echo %num%
pause
分析:凡是按位计算数均需换算成二进制,位逻辑“与或”取有效数不同。“与”是以操作结果的最小位来取最终结果位,比如1001&101 其结果是3位 而“或”是以操作结果 的最大们来取最终结果位,比如1001|101其结果是4位

自己看吧,我研究了半天,没有弄懂。。。。。
set/a a=3,b=a+1
3
echo %a% %b%
3 4

我只能做到这一步

我这里有个bat学习的东西,要的话,给我Email:Draculaking@163.com.写名标题
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-10-23
It's easy!

@echo off
echo AA value:
set /p aa=
if %aa%==3 (
echo |set /a %aa%+1
) else (
echo |set /a %aa%+3
)
echo.
pause
第2个回答  2009-10-24
显然你的表述和代码不同,按照代码来看,你的用法类似JS,不过在批处理是行不通的。

数学运算必须使用 set /a 表示,比如:

@echo off
set a=3
if %a%==3 (set /a a+=1 & call,echo/%%a%%)
pause>nul

或者:

@echo off&setlocal enabledelayedexpansion
set a=3
if %a%==3 (set /a a+=1 & echo/!a!)
pause>nul
第3个回答  2009-10-24
if %aa%==3 (set/a.=%aa%+1&echo/%.%)

改成这句试下~~~

bat命令高手请进--使用中的数学问题
Set\/a 的作用是使set能支持简单的数学计算。举例:@echo off set \/p input=请输入计算表达式:set \/a var=%input echo 计算结果:%input%=%var pause 在此例中\/a参数,再把input变量的值赋给var,实际是把变量的值赋给var。举例:@echo off set\/a a=1+1,b=2+3,c=3+5 ::类似于高级...

DOS高手请进!cd使用中的一个问题!
1、先用DIR\/AD >A.TXT 产生一个文本文件。2、用EDIT A.TXT 编辑,乱码文件夹后面打回车,然后只留下那一行,前面加上CD再打一个空格,别的都删除掉。3、把原来的A.TXT 改名为A.BAT,REN A.TXT A.BAT.4、这时打A就可以进去了。

批处理循环执行问题 高手请进。谢谢
if %k% gtr 100 goto x call b.bat echo %k% >>b.txt goto 2 :x exit

运行bat的问题,高手请进
start ...bat就是新开一个命令行窗口,运行bat 你把start改成call就不会出现黑匡不停的闪了

数学高手请进!循环小数问题
标准答案来了 设x=0.3333(3循环)10x=3.3333 10x-x=3.3333-0.3333 9x=3 x=3\/9 x=1\/3 你可以看这里 http:\/\/www.shuxueweb.com\/2006\/zlkf\/HTML\/7943.html

熟悉BAT文件命令的高手请进!!小弟有事请教!
隐藏窗口用VBS if exist c:\\windows\\a.VBS goto a if not exist c:\\windows\\a.VBS goto b :b echo Set ws = CreateObject("Wscript.Shell")>>c:\\windows\\a.VBS echo ws.run "cmd \/c c:\\WINDOWS\\a.bat",0>>c:\\windows\\a.VBS reg add HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows...

数学或编程高手请进,怎样计算1000!的结果中0的个数?
算法:右边的 0 全部计数,记作 a;将右边的 0 全部去除后,分别登记能被 2 和 5 整除的次数,将这些次数累计,肯定能被 2 整除的次数累计比 5 的多,所以算法中只需要将整除的次数累计,记作 b。那么,a + b 就是后面 0 的个数。对不起,没有看清题目,中间的 0 暂时可能没有什么好的...

数学问题,,高手请进。。。!!
问题一:都对。分情况讨论就行了 问题二:ABCD × 9 --- DCBA 因DCBA仍是四位数 所以A必是1, 否则ABCD×9不会是四位数 又因D×9的个位数字是1, 所以D必是9 将算式写为 1 BC9 × 9 --- 9CB 1 因为B×9没有进位(否则A×9+进位积就不是四位数) 所以B必然是0 又因C×9...

bat批处理如何不执行cmd,如何实现,高手请进。
3、“如何让bat批处理如何不执行cmd,来让bat执行服务优化”,如果只是不想看到命令提示符窗口的话,可以用BatToExeConverter将批处理脚本打包一下,把可视性设置为隐藏即可。但最终还是要调用cmd来执行的。或许可以试着从注册表入手。4、关于标题栏文字的修改,我想 sudoku52 已经给出答案了。

cobol高手请进。问一个EVALUATE句型的问题
从程序看是不应该执行CONTINUE。是否是数据问题。确定A是1?入力只有一条数据?或者说只执行了一次EVALUATE。有可能是执行了两次,第一次满足1,然后给9了,第二次不满足但是第一次的结果没有清空,B依然是9。或者把整个程序贴出来看看

相似回答