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

发布时间:2024-05-28 07:01 发布:上海旅游网

问题描述:

我说的是同一个变量实现自加自减
比如举个例子
在屏幕上依次显示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 前缀, 八进制有 0 前缀的,数字值为十进位数字。因此, 0x12 与 18 和 022相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,因为 8 和 9 不是有效的八进制位数。

if %p1% == 10 goto end
不需要双引号

热点新闻