正如您所看到的,我是批处理文件的新手,我在 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
块,这包括完整的块),因此您只能看到变量的值前循环,因为循环运行时不再有变量;只有值。