Powershell: Pourquoi (GCI c: \ ddd) .count sur un dossier vide ne reviendra pas 0
-
09-10-2019 - |
Question
Pourquoi (gci c:\ddd).count
sur un dossier vide ne retourne 0 mais « rien »
Je viens obtenir une erreur « Vous ne pouvez pas appeler une méthode sur une expression d'une valeur nulle. » Quand ma condition de comptage ne correspond pas.
Que dois-je pour « obtenir » le zéro pour empêcher l'exception?
La solution
Utilisez la @()
de l'opérateur pour faire en sorte que le résultat est un réseau, y compris vide ou contenant un seul élément:
@(gci c:\ddd).count
Les commandes peuvent revenir: 1) une collection; 2) d'un seul objet; 3) null. Votre cas est 3. Appel .Count
sur null (cas 3) ou sur un objet qui ne dispose pas d'un Count
de propriété (cas 2) ne reçoit rien ou peut échouer, par exemple, avec le mode strict activé Set-StrictMode -Version 2
.
@(...)
est toujours un tableau et fonctionne Count
.