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

Windows 如何成功地将For循环回显到批处理脚本中?,windows,batch-file,Windows,Batch File,导致 echo for /f "delims=" %%%i in ^(^'DIR /A -H /B^'^) do set "check^=^^!check^^!,"%%%i"" >> Uninstall.cmd 我试图将原始代码回送到Uninstall.cmd中 for /f "delims=" %%i"" 有谁能帮我弄清楚如何完全转义这行代码,以便将其输出到文件中吗?如果您没有启用延迟扩展功能 for /f "delims=" %%i in ('DIR /A -H /B')

导致

echo for /f "delims=" %%%i in ^(^'DIR /A -H /B^'^) do set "check^=^^!check^^!,"%%%i"" >> Uninstall.cmd
我试图将原始代码回送到Uninstall.cmd中

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

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

如果您没有启用延迟扩展功能

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""
但是,如果代码在块内执行,则还需要转义右括号

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""

工作得很有魅力!谢谢