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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top