我想知道为什么_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
)
我的输出看起来像这样......
FILE1.TXT
TEST:folder3
FILE2.TXT
TEST:folder3
文件夹1
TEST:folder3
文件夹2
TEST:folder3
folder3
TEST:folder3
答案 0 :(得分:1)
_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%%
)