1
我有一個很大的文件,數以萬計的行包含數據分開|
批量插入我的數據庫中。 我知道應該說10列。如何檢查csv文件中每一行的列數?
由於某些數據可能會意外地包含分隔符|
,因爲此行的列數不匹配,可能會發生錯誤。
我想算有20多個欄目,以檢查該文件是有效的行數:
@ECHO OFF
set /a count=0
FOR /f "tokens=10,* delims=|" %%i in (%1) DO (
if not "%%j"=="" (
set /a count+=1
)
)
echo %count%
:eof
它運作良好...但前提是沒有任何字段爲空,在這種情況下,計數轉移,因爲delims
處理諸如空格
e.g
1|2|3|4|5|6|7|8|9|10 => cool, 10 columns
1|2|3|4|5|6|7|8|almost got|you|10 => found 11 columns
1|2|3|4||6|7|8|got|you|10 => damn, reports as 10 columns
我怎樣才能解決這個問題只使用命令行/ Windows批處理分隔符?
N.B.我無法修改文件以將數據封裝在引號或其他內容中。
大,甚至不知道FINDSTR存在 – hoang 2010-11-12 10:01:45