Count property invalid if only one instance

This topic contains 0 replies, has 1 voice, and was last updated by Profile photo of Forums Archives Forums Archives 5 years, 6 months ago.

  • Author
    Posts
  • #5864

    by Lembasts at 2013-04-29 17:37:15

    Greetings,
    Recently I was doing a get-childitem and accessing the count property of the returned collection.
    What I found was that this property was effectively null if only one instance was returned in the collection.
    I found an article on the web that said it was a "known feature" and that it could be fixed by forcing the array e.g. using @($coll).count instead of $coll.count.
    http://blogs.microsoft.co.il/blogs/scriptfanatic/archive/2012/03/19/Counting-objects-in-PowerShell-3.0.aspx

    This worked fine. However, the article went on to say that this "feature" was "fixed" in V3 of Powershell and that the count property would indeed return a value of one if there was only one instance.
    I ran my code on two different machines, both with POSH V3 and it would not return a value of one.

    Explanations?

    by happysysadm at 2013-04-29 18:12:07

    Hi David,

    on v3 it works well for me: (gci).count with only one file returns 1, while on v2 it returned nothing.

    Check $psversiontable and make sure your are effectively using v3.

    Carlo

    by Lembasts at 2013-04-29 18:33:52

    I have checked $psversiontable and I am definitely using V3.

    by MasterOfTheHat at 2013-05-01 08:29:19

    Very strange... works like it's supposed to on mine:
    PS F:\Storage\Scripts\Windows\ScriptingGames> gci

    Directory: F:\Storage\Scripts\Windows\ScriptingGames

    Mode LastWriteTime Length Name
    ---- ------------- ------ ----
    -a--- 4/30/2013 8:47 AM 417 Beginner1.ps1

    PS F:\Storage\Scripts\Windows\ScriptingGames> (gci).Count
    1
    PS F:\Storage\Scripts\Windows\ScriptingGames> $psversiontable

    Name Value
    ---- -----
    WSManStackVersion 3.0
    PSCompatibleVersions {1.0, 2.0, 3.0}
    SerializationVersion 1.1.0.1
    BuildVersion 6.2.9200.16481
    PSVersion 3.0
    CLRVersion 4.0.30319.296
    PSRemotingProtocolVersion 2.2

    I assume your box is updated to the latest build versions, etc? I'm not sure what patches have been released for v3...

You must be logged in to reply to this topic.