1

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
)
4

3 に答える 3

0

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.

于 2013-04-21T22:53:58.903 に答える
0

まず第一に、ファイル名を操作しているときに変数の展開を有効にすることはお勧めしません.遅延展開を有効にすることの意味、利点(速度の向上)、および欠点(文字の欠落)を本当に知っている場合にのみ使用してください.

また、変数「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
于 2013-04-22T04:04:11.663 に答える
-1

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

于 2013-04-21T22:49:42.237 に答える