%aaa%带了引号就表示字符串,但是你这个既然是文件就应该去掉引号,就是说set aaa=d:\list.txt 见for/? 关于for /f 的那个说明,如果必须加引号则需要改成:for /f "usebackq" %%i in (%aaa%) do @echo %%i
set 不能直接使用变量吧,如果一定要用,需要使用命令 'echo %aaa%'