2013-04-21 129 views
1

为什么当FOR循环再次执行时,变量“number”不会增加?增加FORLOOP中的计数器变量

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 
) 
+0

它确实增加数量!变量。您需要在output.txt中使用>> output.txt,以便将所有echo'd行添加到文件中。 – foxidrive 2013-04-22 03:49:25

回答

-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 
) 

编辑 或者试试:

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

0

OK,试试这个请:

@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

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