如何让 (gci).count 返回空列表或单个项目列表的正确数值?

如何让 (gci).count 返回空列表或单个项目列表的正确数值?

有关的:
如何编写脚本来统计特定月份内修改的文件数量?

当我尝试获取项目数(例如,计算(gci).count文件夹中的文件数)时,PowerShell 不会返回空列表或仅包含一个项目的列表的输出。不过,对于包含多个项目的列表,它工作正常。

在此处输入图片描述

如何让 PowerShell 在所有情况下都返回正确的数值?即:如何让它为空列表输出实际零,为单项列表输出一?

gci我的特定用例(如上面链接的相关问题中进一步描述的那样)是获取通过将命令的输出通过管道传输到而得到的列表中的项目数where

答案1

这与以下事实有关:当 powershell 返回一个包含 1 个项目的数组时,它会简单地将数组折叠为单个项目。

在版本 3 之前,这将导致一个没有预期属性的对象count,并且结果将为空。此问题已在版本 3

因此您有 2 个选择:

  1. 升级到 Powershell v3
  2. 应用以下解决方法,始终将结果包装为数组类型@()

    @(gci).count

相关内容