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

时间:2016-05-03 15:56:20

标签: 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 "SELECT * FROM %%x" > %%x.csv

)

但我收到的错误我不知道(我不是蝙蝠文件的专家)。为什么这不起作用?我怎么能做我想做的事?

1 个答案:

答案 0 :(得分:6)

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

set "list=A B C D"