Skip to content

Get-Content -ReadCount 0 does not respect -TotalCount #10707

@mklement0

Description

@mklement0

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:

Expected 3, but got 10.

That is, all 10 lines were read, even though only 3 were requested with -TotalCount

Environment data

PowerShell Core 7.0.0-preview.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    HacktoberfestPotential candidate to participate in HacktoberfestIssue-BugIssue has been identified as a bug in the productResolution-FixedThe issue is fixed.Up-for-GrabsUp-for-grabs issues are not high priorities, and may be opportunities for external contributorsWG-Cmdlets-Managementcmdlets in the Microsoft.PowerShell.Management module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions