增加FORLOOP中的计数器变量
问题描述:
为什么当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
)
答
你应该尝试
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
答
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
。
答
首先我不建议你在使用文件名时启用变量的扩展,只有当你真正知道启用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
它确实增加数量!变量。您需要在output.txt中使用>> output.txt,以便将所有echo'd行添加到文件中。 – foxidrive 2013-04-22 03:49:25