2013-02-20 89 views
1

我有以下命令:SQLCMD或.bat文件,從文件中提取到空行

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可以不是文件,所以我想是需要一些命令,停止在空白通車。

回答

1

您只需將輸出管道輸送到FINDSTR並過濾掉不需要的線路。

/V選項丟掉匹配的行。下面的命令查找空行和你的計數行。搜索條件可能需要改進 - 我沒有sqlcmd來測試。

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

而不是搜索線扔掉,你可以搜索線保持的。只要所需的輸出總是至少有2個以逗號分隔的列,那麼您可以簡單地搜索包含逗號的任何行。

sqlcmd .... | find "," 
0

如果你可以編輯.sql文件,在SELECT語句前加上SET NOCOUNT ON;。 (或者,可以用不同的名稱保存腳本的修改版本,然後使用它。)

這將抑制… rows affected消息(與前面的空行一起)。