Как получить (gci) .count, чтобы возвращать правильные числовые значения для пустых или одиночных списков?
Связанный:
Как написать скрипт для подсчета файлов, измененных в течение определенного месяца?
Когда я пытаюсь получить количество элементов, например, с (gci).count
для подсчета файлов в папке, PowerShell не возвращает вывод для пустых списков или списков, содержащих только один элемент. Тем не менее, он отлично работает для списков, содержащих несколько элементов.
- Бесплатная замена cmd / powershell с обычной копией
- Powershell перегружает Perl binmode?
- Отключение звукового сигнала окна cmd
- Mapped Drive недоступен из запланированной задачи Windows
- Эквивалент команды bash `source` в Powershell?
Как я могу заставить PowerShell возвращать правильные числовые значения для всех случаев? Т.е.: как я могу заставить его выводить фактический нуль для пустых списков и выводить один для списков отдельных элементов?
В моем конкретном случае использования, описанном выше в связанном выше вопросе, необходимо получить количество элементов в списке, который возникает из-за того, что конвейер gci
команды gci
на место.
- Не все отображаемые свойства
- Экспорт-CSV экспортирует длину, но не имя
- Является ли PowerShell полной заменой консоли / cmd?
- Несколько каталогов: эквивалент Powershell "mkdir dir {1..9}"?
- PowerShell's Invoke-RestMethod эквивалент curl -u (базовая аутентификация)
- Как переименовать некоторые файлы в соответствии с их меткой времени
- Сценарий PowerShell для возврата версий .NET Framework на машину?
- Автоматически экспортировать историю в конце сеанса PowerShell
Это связано с тем, что powershell, возвращая массив из 1 элемента, просто сбрасывает массив на этот единственный элемент.
Перед версией 3 это приведет к объекту без ожидаемого свойства count
и ваш результат будет пустым. Это было исправлено в версии 3 .
Итак, у вас есть 2 варианта:
- Обновление до версии Powershell v3
-
Примените следующее обходное решение, в котором вы всегда сворачиваете результаты как тип массива
@()
:@ (GCI) .count