使用循环bat文件窗口进行多个命令调用

我想从sql server表中导出所有的数据到一个csv,我知道我可以通过以下方式获得所需的结果:

sqlcmd -S . -d database -E -s, -W -Q "SELECT * FROM TABLENAME" > file.csv 

我有很多表,所以我想创build一个.bat文件,为我做的工作,我有这样的:

 set "list = ABCD" for %%x in (%list%) do ( sqlcmd -S . -d database -E -s, -W -Q "SELECT * FROM %%x" > %%x.csv ) 

但是我得到的错误我不知道(我不是bat文件的专家)。 为什么这不起作用? 我怎么做我想要的?

使用set距很重要(除非你用/A开关做数学运算)。 正如所写的,你设置的变量不是%list% 。 它是%list % 。 改变你的set命令如下:

 set "list=ABCD"