批处理 for循环中set n+=1 为什么不起作用
3个回答
展开全部
1、通过set命令使用数字表达式时,需要使用/A参数。
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
- 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符
2、当进行set n+=1的时候,可以使用for的如下命令格式进行替换:
FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
展开全部
SET /A 才可以进行算术运算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能要用变量延迟吧!
例如:
setlocal enabledelayedexpansion
if exist "Temp\%dat%-%timo%-PASS-%name%" for /f "usebackq tokens=*" %%l in ("Temp\%dat%-%timo%-PASS-%name%") do set /a a= !a! + 1
不过你的好像少了个/a ,set /a才是计算!
例如:
setlocal enabledelayedexpansion
if exist "Temp\%dat%-%timo%-PASS-%name%" for /f "usebackq tokens=*" %%l in ("Temp\%dat%-%timo%-PASS-%name%") do set /a a= !a! + 1
不过你的好像少了个/a ,set /a才是计算!
追问
echo off&setlocal enabledelayedexpansion
set n=0
pause
for /f "tokens=1,2 delims= " %%i in ('dir/b *.jpg') do (
set /a n+=1
echo !n!
)
pause
这样就行了,谢谢!
追答
哈哈,行就采用啦!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询