1

我想知道为什么 _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
测试:文件夹
3 文件 2.txt
测试 :文件
夹3 文件 夹1 测试:文件夹 3 文件夹 2 测试:文件夹 3 文件夹 3 测试 :文件 夹3




4

1 回答 1

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%%
)
于 2012-04-18T07:35:20.993 回答