2015-10-19 99 views
1

我正在做一些实验以了解如何使用批处理脚本。批处理 - Echo不会在循环中显示变量

我有一个循环

这里显示一些文本的问题是我的代码:

for %%j in (C:\Users\*) do (
SET _test=123456789abcdef0 
    SET _result=%_test:~0,5% 
ECHO %_result%   =12345 
) 

,其结果是: = 12345

如果我使用下面的代码:

SET _test=123456789abcdef0 
    SET _result=%_test:~0,5% 
ECHO %_result%   =12345 

然后结果是 12345 = 12345如预期。

这里的循环出了什么问题?

回答

2

您需要delayed expansion

setlocal enableDelayedExpansion 
for %%j in (C:\Users\*) do (
SET _test=123456789abcdef0 
    SET _result=!_test:~0,5! 
ECHO !_result!   =12345 
) 
+0

工作 - 谢谢先生。 – Soji