为什么变量"数字"当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
)
答案 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