Try this:
$fileEntries = [IO.Directory]::GetFiles("T:\frg\working")
$RecordCounts =
foreach($fileName in $fileEntries)
{
$count = 0
$filedate = (Get-Date).Date
Get-Content $fileName -ReadCount 1000 |
foreach {$count += $_.count}
New-Object psobject -Property @{FileName = $fileName;Count = $count;FileDate = $filedate}
}
$RecordCounts | Export-Csv c:\somedir\RecordCounts.csv
Edit: Testing the 3 posted solutions against a 1GB file of a little over 12 million lines:
$testfile = 'c:\testfiles\bigfile.txt'
'Get-Content | Measure-Object'
(measure-command {
Get-Content $testfile |
Measure-Object -Line | select -expand Lines
}).TotalSeconds
''
'StreamReader'
(measure-command {
$count=0
$reader = New-Object IO.StreamReader $testfile
while($reader.ReadLine() -ne $null){$count++}
$reader.close()
}).TotalSeconds
''
'Get-Content -ReadCount'
(measure-command {
$count=0
Get-Content $testfile -ReadCount 1000 |
foreach {$count += $_.count}
}).TotalSeconds
Get-Content | Measure-Object
175.0600678
StreamReader
20.3832785
Get-Content -ReadCount
6.0199737