它不会在批处理文件的 for 循环中打印变量的增加值

它不会在批处理文件的 for 循环中打印变量的增加值

正如您所看到的,我是批处理文件的新手,我在 Windows 2003 环境中编写了一个脚本,用于打印变量计数器的增加值,并且我还应用了 if 条件,该条件在 for 循环中不起作用,尽管在 for 循环之外它显示了正确的变量值。

@echo off
SetLocal EnableDelayedExpansion
cls
set /A counter = 1
for C:\Scripts\LogFiles\  %%a in (*.txt) do ( echo %counter%
set /A counter += 1
echo %%a
if %counter% ==2 (echo test)
)

答案1

延迟扩展要求您使用!而不是%来扩展变量。所以应该是!counter!

所有形式的环境变量%counter%解析命令(对于for块,这包括完整的块),因此您只能看到变量的值循环,因为循环运行时不再有变量;只有值。

相关内容