如何使用 PowerShell 獲取文件大小(以 KB 為單位)
-
使用
Get-Item
方法和Length
屬性在 PowerShell 中獲取檔案大小 -
使用
Get-Item
和Select-Object
在 PowerShell 中獲取檔案大小 -
使用
Get-ChildItem
和ForEach-Object
在 PowerShell 中獲取檔案大小 -
使用
Get-ChildItem
和ForEach-Object
在 PowerShell 中獲取檔案大小 - 結論

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 中處理檔案系統時,通常不僅需要獲取檔案的大小,還需要以更人性化的格式呈現這些信息,例如千字節 (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
輸出所有這些大小,以友好的方式顯示。
輸出:
使用 Get-Item
和 Select-Object
在 PowerShell 中獲取檔案大小
其中一項任務是檢索檔案的大小。PowerShell 通過將 Get-Item
與 Select-Object
結合提供了一種靈活的方法來做到這一點。
Get-Item
和 Select-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
,我們將此信息輸出到控制台。這種方法簡化且有效,特別是當我們只對有關檔案的某一條信息感興趣時。
輸出:
使用 Get-ChildItem
和 ForEach-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
將每個檔案的名稱和大小打印出來。
這種方法對於遍歷多個檔案並逐個獲取它們的大小是高效的,允許詳細且可自定義的輸出。
輸出:
使用 Get-ChildItem
和 ForEach-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 執行各種檔案大小操作的綜合指南。我們探索了不同的方法:使用 Get-Item
和 Length
屬性,Get-Item
及 Select-Object
組合,以及 Get-ChildItem
與 ForEach-Object
的進階場景,例如按類型分組檔案大小。
每種方法都有特定的目的,從以可讀格式獲取單個檔案的大小,到分析目錄中不同檔案類型的存儲分佈。
對於新手來說,本教程提供了一個清晰的起點,幫助理解檔案操作和大小計算技巧。經驗豐富的用戶將會欣賞這些詳細的示例和在系統管理與數據管理中的實用應用。