2016-05-03 50 views
2

我想從SQL Server表中的所有數據導出爲CSV,我知道我可以得到想要的結果:使用了多個命令循環bat文件,Windows調用

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文件的專家)。爲什麼這不起作用?我該怎麼做我想要的?

+0

好問題.. –

+1

【聲明和使用DOS/Windows批處理文件(.bat)的變量(的可能的複製http://stackoverflow.com/questions/10552812 /聲明和 - 使用-A-可變在-DOS - 窗口批處理文件-BAT) – aschipfl

回答

6

使用set時,間距非常重要(除非您使用/A開關進行數學計算)。正如所寫的,你設置的變量不是%list%。這是%list %。更改set命令如下:

set "list=A B C D" 
相關問題