在批处理中,如何实现变量自加自减,谢谢!最好有例子

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:30:49
我说的是同一个变量实现自加自减
比如举个例子
在屏幕上依次显示1-10然后自动结束我是这样写的
陷入死循环了,你给看看 ,谢谢
begin:
@echo off
set p1=0
:loop
set /A p1=%p1%+1
if p1=="10" goto end
@echo %p1%
goto loop
:end
pause
结果开始就不停下
那个if判断等于没有 怎么回事啊?

应该这样
if "%p1%"=="10" goto end

@echo off
set var1=1
set /a var2=%var1%+3
echo %var2%
如上,你就能看到显示结果为“4”

set /a var2=1+24
echo %var2%
就显示“25”

关键就是在 SET 命令中添加的新命令行开关:
SET /A expression

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式评估器很简单并以递减的优先权顺序支持下列操作:

() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
- 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符

如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些 % 符号来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称。除十六进制有 0x 前缀