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

dpa*_*lma 2 sql windows sql-server shell batch-file

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

sqlcmd -S . -d database -E -s, -W -Q "SELECT * FROM TABLENAME" > file.csv
Run Code Online (Sandbox Code Playgroud)

我有很多表,所以我想创建一个为我工作的.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

)
Run Code Online (Sandbox Code Playgroud)

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

roj*_*ojo 6

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

set "list=A B C D"
Run Code Online (Sandbox Code Playgroud)