在FOR LOOP中递增计数器变量

时间:2013-04-21 22:44:33

标签: variables loops for-loop batch-file increment

为什么变量"数字"当FOR循环再次超过它时不会增加?

setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N+=1
set /a number=!number!+1
echo  %%a !number!.jpg >output.txt
)

3 个答案:

答案 0 :(得分:0)

好的,请试试这个:

@echo off &setLocal EnableDelayedExpansion
(for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N+=1
set /a number=!number!+1
echo  %%a !number!.jpg 
))>output.txt

如果是重定向,则需要>>output.txt或代码块(括号)和>output.txt

答案 1 :(得分:0)

首先,我不建议您在使用文件名时启用变量扩展,只有在您真正知道启用delayedexpansion的方法,优点(改进的速度)和否定(缺少字符)时才使用它

您还要为变量“N”指定一个值,但不要使用该变量。

以下是代码:

@echo off

(for /f "usebackq tokens=* delims= " %%a in ("input.txt") do (
    Set /A Number+=1
    Call Echo %%a %%number%%.jpg
))>"Output.txt"

Pause&Exit

答案 2 :(得分:-1)

你应该试试

setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N++
set /a number=!number!+1
echo  %%a !number!.jpg >output.txt
)

EDIT 或者尝试:

setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N++
set /a number=!number!++
echo  %%a !number!.jpg >output.txt
)


或许或许,++甚至不支持你用来编程的东西。让我知道!
Shadowpat