sqlcmd或.bat文件从文件拉到空行

时间:2013-02-20 15:45:07

标签: batch-file export-to-csv sqlcmd

我有以下命令:

sqlcmd -S CHLWBIDB204 -d PayrollReports -U finance_lookup -P lawson -i"L:\Lawson\EEIMPORT.sql" -W -o "Z:\EmployeeImport.csv" -h-1 -s"," 

它工作得很好,除了这个文件的接收者不能用空行和它提供的总数接受它。

类似的东西:

           ...
(line 10)  1, 2292, KPR, 7.94
(line 11)
(line 12)  (10 rows affected)

第11行和第12行不能在文件中,所以我认为需要一些命令才能在空行处停止。

2 个答案:

答案 0 :(得分:1)

您需要做的就是将输出传输到FINDSTR并过滤掉不需要的行。

/ V选项会抛弃匹配的行。下面的命令查找空行和您的计数行。搜索条件可能需要改进 - 我没有sqlcmd来测试。

sqlcmd .... | findstr /v /c:"^$" /c:"([0-9]* rows affected)"

您可以搜索要保留的行,而不是搜索要丢弃的行。只要所需的输出始终至少有2个逗号分隔列,那么您只需搜索包含逗号的任何行。

sqlcmd .... | find ","

答案 1 :(得分:0)

如果您可以编辑.sql文件,请在SELECT语句之前添加SET NOCOUNT ON;。 (或者,以不同的名称保存脚本的修改版本并改为使用它。)

这将取消… rows affected消息(与前面的空行一起)。