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

Sql 使用for循环bat文件窗口进行多个命令调用,sql,sql-server,windows,shell,batch-file,Sql,Sql Server,Windows,Shell,Batch File,我想将所有数据从sql server表导出到csv,我知道我可以通过以下方式获得所需的结果: sqlcmd -S . -d database -E -s, -W -Q "SELECT * FROM TABLENAME" > file.csv 我有很多表,所以我想创建一个.bat文件来为我完成这项工作,我有: set "list = A B C D" for %%x in (%list%) do ( sqlcmd -S . -d database -E -s, -W -Q "S

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

sqlcmd -S . -d database -E -s, -W -Q "SELECT * FROM TABLENAME" > file.csv
我有很多表,所以我想创建一个.bat文件来为我完成这项工作,我有:

set "list = A B C D"


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

)

但我会犯一些我不知道的错误(我不是bat文件方面的专家)。为什么这不起作用?如何做我想做的事?

使用
设置时,间距很重要(除非您使用
/A
开关进行数学运算)。如前所述,您设置的变量不是
%list%
。这是
%list%
。按如下方式更改
set
命令:

set "list=A B C D"
可能重复的