Powershell - The differences between .count and .length properties
To support me, you can subscribe to the channel, share and like the videos, disable your ad blocker or make a donation. Thank you!
Hello,
A question I get from time to time in training: What is the difference between .count and .length properties? Well, I admit having a lot to explain in a non-extendable time lapse often my answer is for lack of time : “They can give in some cases the same result but they are different”.
Here I take the time to elaborate a bit more!
# Let's take this two variables for the demonstration $Objects = Get-Service $Objects = Get-Item C:\WindowsUpdate.log $String = 'Titi # Let's display the result with the .Length and .Count properties for the 1st variable and the object type $Objects.Length # Result: 326 $Objects.count # Result: 326 $Objects.GetType() # Result: Object[]
The result is the same
# Let's display the result with the .Length and .Count properties for the 2nd variable and the object type$Object.Length# Result: 276$Object.count# Result: 1$Object.GetType()# Result: FileInfo
# Display the result with the .Length and .Count properties for the 3rd variable and the object type$String.Length# Result: 4$String.count# Result: 1$String.GetType()# Result: String
We can see that .count always displays the number of objects
For the .length property, the result depends on the type of the object:
- Number of characters for a String type object
- Number of objects for an array
- Size for an object of type ‘File’
- …
If you want length to also display the number of objects, make sure you return a collection
$Object.Length# Result: 276$Object.count# Result: 1$String.Length# Result : 4$String.count# Result : 1
@($Object).Length# Result: 1@($Object).count# Result: 1@($String).Length# Result : 1@($String).count# Result : 1
Related links
Powershell - Testing network connectivity and port accessibility
Testing network connectivity and port accessibility with PowershellPowershell - Display network connections (equivalent to netstat)
Display network connections (listening ports, active connections...)Powershell - Testing name resolution (equivalent to nslookup)
Powershell commands to test name resolution (equivalent to nslookup)Powershell - View and manage DNS configuration of network interfaces
Powershell commands to display and manage DNS configuration of network interfacesPowershell - Managing IP configuration of network interfaces
Powershell commands to view and modify the IP configuration of network interfacesPowershell - Managing the status and configuration of network interfaces
Powershell commands to view and modify the status and configuration of network interfaces (disable IPv6, enable/disable an interface)
Follow me on
Support me
Last content
Powershell - Testing network connectivity and port accessibility
Powershell - Display network connections (equivalent to netstat)
Powershell - Testing name resolution (equivalent to nslookup)
Powershell - View and manage DNS configuration of network interfaces
Powershell - Managing IP configuration of network interfaces
Powershell - Managing the status and configuration of network interfaces
Powershell and the Left Hand Side
Powershell - Managing disks, partitions and volumes