Get-Content -ReadCount 0 is a convenient way to request that all lines be read at once, into an array and to have that array be output as a single object to the success stream.
If the intent is to read all lines into memory anyway, this can greatly speed up the command.
-TotalCount <n> allows you to limit the overall number of lines to be read from the file to a given number.
It's reasonable to expect that -ReadCount 0 also respects that number and therefore returns an <n>-element array.
Currently, -ReadCount 0 effectively ignores -TotalCount and always returns all lines in the file as an array.
By contrast, a specific number - e.g, -ReadCount 2 to read the file as a stream of 2-element arrays - does respect -TotalCount.
Steps to reproduce
1..10 > temp:/$pid.txt
(Get-Content temp:/$pid.txt -TotalCount 3 -ReadCount 0).Count | Should -Be 3
Remove-Item temp:/$pid.txt
Expected behavior
The test should pass.
Actual behavior
The test fails:
That is, all 10 lines were read, even though only 3 were requested with -TotalCount
Environment data
PowerShell Core 7.0.0-preview.4
Get-Content -ReadCount 0is a convenient way to request that all lines be read at once, into an array and to have that array be output as a single object to the success stream.If the intent is to read all lines into memory anyway, this can greatly speed up the command.
-TotalCount <n>allows you to limit the overall number of lines to be read from the file to a given number.It's reasonable to expect that
-ReadCount 0also respects that number and therefore returns an<n>-element array.Currently,
-ReadCount 0effectively ignores-TotalCountand always returns all lines in the file as an array.By contrast, a specific number - e.g,
-ReadCount 2to read the file as a stream of 2-element arrays - does respect-TotalCount.Steps to reproduce
Expected behavior
The test should pass.
Actual behavior
The test fails:
That is, all 10 lines were read, even though only 3 were requested with
-TotalCountEnvironment data