为什么在批处理脚本中没有工作“do set”功能?

时间:2015-07-30 10:45:18

标签: windows batch-file

我在批处理脚本中遇到以下问题。

我有这个代码行

for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do set merger_list=%%d
echo %merger_list%

,结果为Echo is OFF

然后我尝试了这段代码

for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do echo %%d

结果为C:\Users\user\Desktop\Build\Input\JOB_1\a2lfiles_merger.txt

所以,问题是为什么我不能用路径设置变量?我需要在接下来的步骤中使用它,现在我陷入了这种情况。有谁能找到解决方案?谢谢大家!

1 个答案:

答案 0 :(得分:1)

修改后的代码:

    setlocal enabledelayedexpansion
    for /f "tokens=*" %%d in ('dir /b /s a2lfiles_merger*.txt') do (
set merger_list=%%d
    echo !merger_list!
)

请注意setlocal命令和括起要在for循环中执行的命令的括号。这就是循环的工作原理。

希望有所帮助!