1

为什么当 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
)
4

3 回答 3

0

首先,我不建议您在使用文件名时启用变量扩展,只有在您真正知道启用延迟扩展的含义、好处(提高速度)和负面因素(缺少字符)时才使用它。

此外,您正在为变量“N”分配一个值,但您不使用该 var。

这是代码:

@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
于 2013-04-22T04:04:11.663 回答
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.

于 2013-04-21T22:53:58.903 回答
-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
)


或者也许你用来编程的东西甚至不支持 ++。让我知道吧!
影子帕特

于 2013-04-21T22:49:42.237 回答