1

Связанные с:
Как я могу написать скрипт для подсчета файлов, измененных в течение определенного месяца?

Когда я пытаюсь получить количество элементов, например, с помощью (gci).count для подсчета файлов в папке, PowerShell не возвращает выходные данные для пустых списков или списков, содержащих только один элемент. Тем не менее, он отлично работает для списков, содержащих несколько элементов.

Как я могу заставить PowerShell возвращать правильные числовые значения для всех случаев? То есть: как я могу получить его для вывода фактического нуля для пустых списков и вывода одного для списков из одного элемента?

Мой конкретный вариант использования, как более подробно описано в связанном выше связанном вопросе, состоит в том, чтобы получить количество элементов в списке, которое получается в результате передачи вывода команды gci where .

1 ответ1

3

Это связано с тем, что powershell при возврате массива из 1 элемента просто свернет массив в этот отдельный элемент.

До версии 3 результатом будет объект без ожидаемого свойства count и ваш результат будет пустым. Это было "исправлено" в версии 3.

Итак, у вас есть 2 варианта:

  1. Обновление до Powershell v3
  2. Примените следующий обходной путь, где вы всегда переносите свои результаты как тип массива @():

    @(GCI).count

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .