为什么在批处理脚本不工作的“做设置”function?

批处理脚本中有以下问题。

我有这个代码行

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

所以,问题是为什么我不能设置一个variables的path? 我需要在接下来的步骤中使用它,现在我陷入了这种情况。 任何人都可以find解决办法 谢谢大家!

Solutions Collecting From Web of "为什么在批处理脚本不工作的“做设置”function?"

修改的代码:

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

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

希望有所帮助!