我想知道为什么_STR没有设置为新的%%A?谢谢。
FOR /f "tokens=1 delims=" %%A IN ('dir /b C:test') DO (
ECHO %%A
SET _STR=%%A
ECHO TEST : %_STR%
REM IF "%%A:~-1"=="/" ECHO %%A
)
我的输出看起来像这样...
文件1.txt
测试:文件夹3
文件2.txt
测试:文件夹3
文件夹1
测试:文件夹3
文件夹2
测试:文件夹3
文件夹3
测试:文件夹3
_STR 将设置为新的 %%A,但你不能以这种方式回显它。
因为在括号块中,所有百分比变量都在解析时展开,然后执行将开始。
为避免这种情况,您可以使用延迟扩展或 CALL 技巧。
Setlocal EnableDelayedExpansion
FOR /f "tokens=1 delims=" %%A IN ('dir /b C:test') DO (
ECHO %%A
SET _STR=%%A
ECHO TEST : !_STR!
call ECHO TEST2 : %%_STR%%
)