如何使用 PowerShell 获取文件大小(以 KB 为单位)

  1. 使用 Get-Item 方法和 Length 属性在 PowerShell 中获取文件大小
  2. 使用 Get-ItemSelect-Object 在 PowerShell 中获取文件大小
  3. 使用 Get-ChildItemForEach-Object 在 PowerShell 中获取文件大小
  4. 使用 Get-ChildItemForEach-Object 在 PowerShell 中获取文件大小
  5. 结论
如何使用 PowerShell 获取文件大小(以 KB 为单位)

PowerShell 是一个强大的工具,使您能够在系统中执行不同的文件操作。您可以在 PowerShell 中执行文件任务,如创建、复制、移动、删除、读取、重命名和检查文件的存在。

在 Windows 中,您可以通过右键单击文件图标并选择“属性”选项来通过图形用户界面检查文件大小。但有时,您可能需要通过 PowerShell 检查文件大小。

本教程将教您如何使用 PowerShell 获取文件大小。

使用 Get-Item 方法和 Length 属性在 PowerShell 中获取文件大小

文件对象在 PowerShell 中具有 Length 属性。它表示文件的大小(以字节为单位)。

以下命令获取 train.csv 文件的大小(以字节为单位)。

# Getting the size of a file
$file = Get-Item "sample.txt"
$fileSize = $file.Length
Write-Host "The size of the file is $fileSize bytes"

用您想要的文件路径替换 sample.txt

在我们的代码中,我们首先使用 Get-Item 获取 sample.txt 的文件对象。一旦我们在 $file 中有了文件对象,就可以访问它的 .Length 属性以获取文件的字节大小。

最后,我们使用 Write-Host 将大小打印到控制台。这个方法很有效,因为它利用了 PowerShell 面向对象的特性,使我们能够轻松访问文件属性。

输出:

powershell 获取文件大小 - 输出 1

在 PowerShell 中处理文件系统时,通常需要不仅获取文件的大小,还需要以更易于人类阅读的格式呈现这些信息,例如千字节(KB)、兆字节(MB)或吉字节(GB)。PowerShell 通过允许我们使用 Get-Item 检索文件大小(以字节为单位),然后将此值转换为更大的单位,简化了此过程。

# Getting and converting the size of a file
$file = Get-Item "sample.txt"
$fileSizeBytes = $file.Length
$fileSizeKB = $fileSizeBytes / 1KB
$fileSizeMB = $fileSizeBytes / 1MB
$fileSizeGB = $fileSizeBytes / 1GB

Write-Host "File size: $fileSizeBytes bytes, $fileSizeKB KB, $fileSizeMB MB, $fileSizeGB GB"

用您想要的文件路径替换 sample.txt

在这个脚本中,我们开始使用 Get-Item 获取文件对象。然后我们访问该对象的 .Length 属性以获取文件大小(以字节为单位)。

接下来,我们进行简单的算术运算,将该字节值转换为 KB、MB 和 GB。最后,我们使用 Write-Host 以用户友好的方式打印出所有这些大小。

输出:

powershell 获取文件大小 - 输出 2

使用 Get-ItemSelect-Object 在 PowerShell 中获取文件大小

其中一项任务是检索文件的大小。PowerShell 通过结合 Get-ItemSelect-Object 提供了一种灵活的方法来做到这一点。

Get-ItemSelect-Object 的组合用于获取文件属性,包括文件大小。当您需要以干净、可读的格式提取特定信息(如文件大小)时,这种方法特别有用。

# Getting the size of a file using Select-Object
$fileSize = (Get-Item "sample.txt" | Select-Object -ExpandProperty Length)
Write-Host "The size of the file is $fileSize bytes"

用您的文件路径替换 sample.txt

在我们的脚本中,我们首先使用 Get-Item 检索 sample.txt 的文件对象。然后我们将此对象通过管道(|)传递给 Select-Object,指定 -ExpandProperty Length 参数直接提取文件大小(以字节为单位)。

通过使用 Write-Host,我们将此信息输出到控制台。这种方法简化且有效,尤其是当我们只关注有关文件的一个信息时。

输出:

powershell 获取文件大小 - 输出 3

使用 Get-ChildItemForEach-Object 在 PowerShell 中获取文件大小

使用 Get-ChildItem 结合 ForEach-Object 的目的是枚举目录中的文件,并逐个处理每个文件以获取其大小。这种方法在系统管理中广泛适用于监控目录大小,在数据管理中用于评估存储需求,以及在创建详细的文件大小报告时用于分析或审计目的。

# Getting sizes of all files in a directory
Get-ChildItem "Directory\" | ForEach-Object {
    $fileSize = $_.Length
    Write-Host "$($_.Name) size: $fileSize bytes"
}

用您选择的目录路径替换 Directory\

在我们的脚本中,使用 Get-ChildItem 检索 Directory\目录中的所有文件。检索到的每个文件随后通过管道传递到 ForEach-Object 中。

ForEach-Object 脚本块内部,我们访问每个文件对象($_)的 Length 属性以获取其大小(以字节为单位)。然后使用 Write-Host 命令打印每个文件的名称和大小。

这种方法适合迭代多个文件并单独获取其大小,以允许详细和可定制的输出。

输出:

powershell 获取文件大小 - 输出 4

使用 Get-ChildItemForEach-Object 在 PowerShell 中获取文件大小

通过结合 PowerShell 的文件操作 cmdlet 与 ForEach-Object,我们可以高效地计算按类型分组的文件大小。在存储分析、数据组织和报告等场景中,这种方法尤其有益,以便文件类型及其相应大小至关重要。

此技术的主要目的是迭代目录中的文件,按扩展名对它们进行分组,并计算每种文件类型的总大小。

# Calculating total file sizes by file type
Get-ChildItem "Directory" -Recurse | Group-Object Extension | ForEach-Object {
    $totalSize = ($_.Group | Measure-Object -Property Length -Sum).Sum
    Write-Host "Total size for $($_.Name) files: $totalSize bytes"
}

用您选择的目录路径替换 Directory

在这个脚本中,我们首先使用 Get-ChildItem 获取 Directory 目录中的所有文件,包括子目录(-Recurse)。然后使用 Group-Object 按文件扩展名对这些文件进行分组。

ForEach-Object cmdlet 处理每个组,我们使用 Measure-Object -Property Length -Sum 计算每个组中所有文件的总大小。

最后,使用 Write-Host 显示每种文件类型的总大小。这种方法适合汇总数据,并提供有关按类型分布的文件大小的清晰洞察。

输出:

powershell 获取文件大小 - 输出 5

结论

总之,本文提供了利用 PowerShell 执行各种文件大小操作的全面指南。我们探索了不同的方法:使用 Get-ItemLength 属性、将 Get-ItemSelect-Object 结合以及使用 Get-ChildItemForEach-Object 进行更高级的场景,如按类型分组文件大小。

每种方法都有其特定目的,从以可读格式获取单个文件的大小到分析目录中不同文件类型的存储分布。

对于新手来说,此教程提供了一个清晰的起点,以了解文件操作和大小计算技术。经验丰富的用户将欣赏详细的示例和在系统管理及数据管理中的实际应用。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相关文章 - PowerShell File