2016-06-08 61 views
0

我試圖使用Pshell獲取文本文件的行數。我已經使用的查詢,如:在PowerShell中獲取文本文件的錯誤計數

$count = 0 
$reader = New-Object IO.StreamReader $Filename 
while($reader.ReadLine() -ne $null){ $count++ } 
$reader.Close() 

$measure = Get-Content $Filename| Measure-Object 
$lines = $measure.Count 

,但得到一個錯誤的行數只爲一個特定的文本file.It比它應該真的返回一個slihgly更大的計數。

如果我在cmd中使用下面的命令,雖然,我會得到正確的計數:

set file=E:\A.txt 
set /a cnt=0 
for /f %%a in ('type "%file%"^|find "" /v /c') do set /a cnt=%%a 
echo %cnt% 

有人可以幫我這個翻譯成PowerShell的? 我非常感謝您的幫助和建議。

+0

做這兩個命令產生不同的輸出? '(Get-Content「problemtextfile.txt」| Measure-Object).Count'與'(cmd/c type「problemtextfile.txt」| Measure-Object).Count'(當然,請將您的問題文本文件指定爲參數) –

+0

是跑他們,他們返回相同(稍大)的數字。 – Sina89

+1

這兩個命令返回相同的計數?在記事本等純文本編輯器中查看「問題」文本文件,然後轉到文件的末尾。行號是什麼?它應該和PowerShell命令所說的一樣。 –

回答

1

我不太確定,但我認爲你原來的腳本只計算非空行,也許這就是爲什麼powershell版本更大的原因。

嘗試使用這個腳本,並檢查它的確定:

Get-Content $Filename | Select-String "." | measure -line 

問候

相關問題