统计或计算对象的数值属性,如字符串对象中的字符、单词和行数,可能会令人沮丧。幸运的是,PowerShell Measure-Object
cmdlet正好能胜任这项任务。
在本教程中,您将学习如何利用Measure-Object
cmdlet自动测量PowerShell中对象属性的强大功能。
立即开始,提升您的对象测量技能吧!
先决条件
本教程是一个动手演示。要跟着操作,您需要安装了PowerShell的系统。本教程使用的是安装了PowerShell v7的Windows 10。
统计文件和文件夹
了解目录中文件和文件夹的数量在各种情况下都可能会有所帮助。一个例子是当您需要监视文件夹的大小或检查目录中文件的数量时。
Measure-Object
cmdlet用于统计目录中文件和文件夹的数量。准确的计数有助于您更好地管理和优化系统资源。
要了解Measure-Object
cmdlet如何统计文件和文件夹的工作方式:
1. 打开 PowerShell,并运行以下命令 Get-ChildItem
来计算并返回当前目录中的文件和文件夹总数 (Measure-Object
)。
下面的输出指示当前目录中有 4852 个文件和文件夹。

也许你想要递归地包含目录树中的所有文件和子目录。如果是这样,请添加
-Recurse
参数,如下所示。Get-ChildItem -Recurse | Measure-Object
2. 接下来,像在步骤一中一样运行相同的命令。但这次,在工作目录中添加 -Directory
参数以仅计算总目录数。
如下所示,总数现在较低 (135),因为该命令仅计算了目录,而排除了所有其他对象。

3. 现在,运行以下命令来计算当前目录中的可执行文件 (.exe
) 数量。
-Filter
参数告诉 Get-ChildItem
命令筛选结果,并仅返回您指定的扩展名的文件(即,*.txt
、*.jpg
、*.csv
)。

测量文件大小
测量对象的长度和大小可以帮助更好地管理您的系统,因为大文件会影响系统性能。除了计算属性之外,您还可以使用Measure-Object
cmdlet测量对象的长度和大小。
运行以下代码以检索当前目录中的所有文件(Get-ChildItem
)并显示其默认情况下的字节长度(Write-Host
)。
以下代码将每个测量输出到控制台,包括最小和最大文件大小,平均文件大小,文件大小总和以及文件总数。
下面,您可以看到以字节显示的大小。

也许把代码粘贴到控制台不是您的菜。如果是这样,请将代码保存到 PowerShell 脚本文件中并运行它。
现在,运行以下命令以获取当前目录中大小等于最大文件大小($files.Maximum)的文件。
下面的输出显示了当前目录中最大文件的名称。

测量文本文件内容
您可能需要确定文本文件中的行数、单词数或字符数,而不是测量文件大小。如果是这样,Measure-Object
命令有许多其他参数可以测量文本文件内容。
运行以下代码以执行对文本文件内容的测量(`Measure-Object`),通过 `-Character`、`-Line` 和 `-Word`,并输出(`Write-Host`)测量结果。
确保将$file_path
和$file_content
变量的值更改为您喜欢的值。

测量布尔值
布尔值是只能是真或假的值。在 PowerShell 中,布尔值通常用于控制脚本的流程,确定条件(真或假),或指示命令的成功或失败。
测量布尔值在各种情况下都很有用,例如:
- 计算数据集中真或假值的数量。
- 确定真值相对于总值的百分比。
此信息有助于在处理或分析数据时做出明智的决策。
要了解如何测量布尔值的工作原理:
运行以下命令以计算数组($values
)中布尔值(默认为true值)的总和。
下面,布尔值的总数为九(9),而总和为五(5),因为只计算了true值。
那么假值呢?跳到以下步骤,并运行更多命令。

现在,运行下面的代码来从布尔值总数($count
)中减去true值的总和($trueCount
)。该方程的差异是假值的总数($falseCount
)。

如果测量布尔值是日常任务,您可以创建一个可以随时调用的函数来运行任务。
测量哈希表
PowerShell中的哈希表(键值对的集合)可以快速高效地存储和检索数据。如果您需要哈希表中的项目数量或最大最小值,请使用Measure-Object
命令来测量您的哈希表。
运行下面的命令来查找哈希表($MyHastable
)中Num
属性的-Minimum
和-Maximum
值。

测量标准差
审查数据集可能会变得冗长,但不一定非如此。在了解数据集值的分布时,测量标准差是很方便的。您还可以识别任何影响结果的异常值或不寻常的数据点。
标准差衡量数据集值从均值(平均值)的变异或分散程度。该度量通过找到数据方差的平方根来计算,该方差是从均值的平方差的平均值。
运行下面的代码来计算并显示存储在变量$Numbers
中的数组的-平均值
和-标准差
。
在统计学中,均值衡量中心趋势,描述数据集的典型或最具代表性的值。
平均值是通过将数据集中的所有数字相加并除以值的总数来计算的。在此示例中,数据集为{10
,20
,30
,40
,50
},总和为150,集合中有五个数字(5
)。
因此,下面计算的平均值为30
。
另一方面,标准差衡量一组数据的扩散或分散。标准差的计算如下:

结论
测量数据是一项重要任务,而 PowerShell Measure-Object
命令是完成该任务的强大工具。在本教程中,您已经学会了如何以多种方式测量数据。无论您是处理文件、文本文件内容、布尔值、字符串、数组还是哈希表,对它们进行测量都可以提供有价值的见解。
现在,您可以轻松计算数据的平均值、最大值和最小值,并测量数据的变化或扩展。有了这些功能,您可以更深入地了解您的数据,并根据分析做出明智的决策。
有了这些新的知识,为什么不扩展您的 PowerShell 工具包并将 Compare-Object
添加到您的工具库中呢?
Source:
https://adamtheautomator.com/powershell-measure-object/