为什么当 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
)
为什么当 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
)
首先,我不建议您在使用文件名时启用变量扩展,只有在您真正知道启用延迟扩展的含义、好处(提高速度)和负面因素(缺少字符)时才使用它。
此外,您正在为变量“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
好的,请试试这个:
@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
.
你应该试试
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
)
或者也许你用来编程的东西甚至不支持 ++。让我知道吧!
影子帕特