Powershell - Les différences entre les propriétés .count et .length

Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!

Bonjour,

Une question que j’ai de temps en temps en formation : Quelle est la différence entre les propriétés .count et .length

Bon, j’avoue ayant beaucoup de choses à expliquer dans un lapse de temps non extensible souvent ma réponse est faute de temps :

“Elles peuvent donner dans certains cas le même résultat mais elles sont différentes”.

Je prends ici le temps de développer un peu plus!

# Prenons c'est deux variables pour la démonstration
$Objets = Get-Service
$Objet = Get-Item C:\Windows\WindowsUpdate.log
$String = 'Titi'
# Affichons le résultat avec les propriétés .Length et .Count pour la 1ere variable et le type de l'objet
$Objets.Length
# Résultat : 326
$Objets.count
# Résultat : 326
$Objets.GetType()
# Résultat : Object[]

Le résultat est le même

# Affichons le résultat avec les propriétés .Length et .Count pour la 2e variable et le type de l'objet
$Objet.Length
# Résultat : 276
$Objet.count
# Résultat : 1
$Objet.GetType()
# Résultat : FileInfo
# Affichons le résultat avec les propriétés .Length et .Count pour la 3e variable et le type de l'objet
$String.Length
# Résultat : 4
$String.count
# Résultat : 1
$String.GetType()
# Résultat : String

On constate que .count affiche toujours le nombre d’objets

Pour la propriété .length, le résultat dépend du type de l’objet :
- Nombre de caractère pour un objet type String
- Nombre d’objets pour un array
- Taille pour un objet de type ‘Fichier’
- …

Si vous voulez que length affiche aussi le nombre d’objets, assurez-vous de renvoyer une collection

$Objet.Length
# Résultat : 276
$Objet.count
# Résultat : 1
$String.Length
# Résultat : 4
$String.count
# Résultat : 1
@($Objet).Length
# Résultat : 1
@($Objet).count
# Résultat : 1
@($String).Length
# Résultat : 1
@($String).count
# Résultat : 1

Liens en relation