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

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

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

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


person icnivad    schedule 06.12.2010    source источник


Ответы (1)


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

@(gci c:\ddd).count

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

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

person Roman Kuzmin    schedule 06.12.2010
comment
Благодарю вас! Иногда это просто ;-) - person icnivad; 07.12.2010