FOR ループが再度実行されたときに、変数 "number" が増加しないのはなぜですか?
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 ループが再度実行されたときに、変数 "number" が増加しないのはなぜですか?
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
)
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
.
まず第一に、ファイル名を操作しているときに変数の展開を有効にすることはお勧めしません.遅延展開を有効にすることの意味、利点(速度の向上)、および欠点(文字の欠落)を本当に知っている場合にのみ使用してください.
また、変数「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
You should try
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
Or try:
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (input.txt) do (
set /a N++
set /a number=!number!++
echo %%a !number!.jpg >output.txt
)
Or maybe that ++ isnt even supported by what you are using to program this. Let me know though!
Shadowpat