在PowerShell中获取错误的文本文件计数

时间:2016-06-08 19:05:06

标签: powershell

我试图使用Pshell获取文本文件的行数。我使用了诸如以下的查询:

$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

但是只为一个特定的文本文件获取了错误的行数。它实际上返回了比它应该更大的计数。

如果我在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吗? 我非常感谢您的帮助和建议。

1 个答案:

答案 0 :(得分:1)

我不太确定,但我认为你的原始脚本只计算非空行,也许这就是powershell版本更大的原因。

尝试使用此脚本并检查是否正常:

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

此致