如何使用 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 中,你可以通過 GUI 右鍵單擊檔案圖示然後選擇 屬性 選項來檢查檔案大小。但是,有時你可能需要從 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-ChildItemForEach-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