Powershell: почему (gci c: \ ddd) .count в пустой папке не возвращает 0 - PullRequest
4 голосов
/ 06 декабря 2010

Почему (gci c:\ddd).count в пустой папке не возвращает 0, но "ничто"

Я просто получаю сообщение об ошибке «Вы не можете вызвать метод для выражения с нулевым значением». Когда мое условие подсчета не совпадает.

Что мне нужно, чтобы "получить" ноль, чтобы предотвратить исключение?

1 Ответ

7 голосов
/ 06 декабря 2010

Используйте оператор @(), чтобы убедиться, что результатом является массив, включая пустой или содержащий один элемент:

@(gci c:\ddd).count

Команды могут возвращать: 1) коллекцию;2) один объект;3) ноль.Ваш случай 3. Вызов .Count для null (случай 3) или для объекта, у которого нет свойства Count (случай 2), ничего не происходит или может завершиться ошибкой, например, с включенным строгим режимом Set-StrictMode -Version 2.

@(...) всегда массив, а Count работает.

...