我在批处理脚本中遇到以下问题。
我有这个代码行
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
所以,问题是为什么我不能用路径设置变量?我需要在接下来的步骤中使用它,现在我陷入了这种情况。有谁能找到解决方案?谢谢大家!
答案 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循环中执行的命令的括号。这就是循环的工作原理。
希望有所帮助!