如何成功地将 For 循环回显到批处理脚本中?

How do I Successfully Echo a For Loop Into a Batch Script?

echo for /f "delims=" %%%i in ^(^'DIR /A -H /B^'^) do set "check^=^^!check^^!,"%%%i"" >> Uninstall.cmd

结果

for /f "delims=" %%i"" 

原始代码我试图回显到 Uninstall.cmd

for /f "delims=" %%i in ('DIR /A -H /B') do set "check=!check!,"%%i""

谁能帮我弄清楚如何完全转义该行代码,以便将其输出到文件中?

如果您没有启用延迟扩展

echo for /f "delims=" %%%%i in ('DIR /A-H /B') do set "check=!check!,"%%%%i""

如果启用延迟展开,感叹号需要转义

echo for /f "delims=" %%%%i in ('DIR /A-H /B') do set "check=^!check^!,"%%%%i""

但是,如果代码在块内执行,右括号也需要转义

if 1==1 (
    echo for /f "delims=" %%%%i in ('DIR /A-H /B'^) do set "check=!check!,"%%%%i""

    :: OR

    echo for /f "delims=" %%%%i in ('DIR /A-H /B'^) do set "check=^!check^!,"%%%%i""
)