我正在创建的批处理文件中有一个简单的 FOR 循环,但它的工作方式与我期望的不太一样。FOR 循环遍历文本文件的行,在每次迭代中,我使用 IF 语句对当前行进行快速比较,如果结果为真,则做一些工作。这是代码:
SETLOCAL ENABLEDELAYEDEXPANSION
set /a sitecounts=1
set /a input=34
FOR /F "tokens=1,2 delims=^/" %%G IN (file.txt) DO (
IF %sitecounts% == %input% (set /a selectedsitepath=%logfilepath%W3SVC%%H)
set /a sitecounts=!sitecounts!+1
echo !sitecounts!
)
我遇到了一个奇怪的问题,sitecounts变量(我的计数器)实际上随着每个循环正确递增(我通过用最后一条语句回显计数来证明这一点)——但在下一次迭代时%sitecounts%仍然显示它的值为“1”,这是初始值。
如果我将代码更改为:
IF !sitecounts! == ...
...然后 IF 语句似乎将该值视为纯文本!我已将 ENABLEDELAYEDEXPANSION 设置为处理循环内的变量,但不确定下一步该做什么。任何帮助表示赞赏!