使用 PowerShell 壓縮和解壓縮檔案
在 PowerShell 5.0 中,Microsoft 具有用於建立 zip 存檔和從現有存檔中提取檔案的命令。本文將討論用於歸檔和解壓縮壓縮檔案的 PowerShell 命令。
以下命令是 PowerShell v5.0 中釋出的兩個最新 cmdlet:Compress-Archive
命令從資料夾或單個檔案建立壓縮存檔檔案,Expand-Archive
命令從壓縮存檔檔案中提取檔案。
使用 PowerShell 壓縮檔案
讓我們使用 PowerShell 將檔案壓縮到一個新的 .zip
檔案中。
使用 -Path
引數指定我們要壓縮的資料夾的位置,使用 -DestinationPath
引數指定要建立的壓縮檔案的名稱。
例如,下面的命令將壓縮 C:
根目錄中的 Temp
資料夾,並在 Temp 資料夾中建立一個名為 Temp_Files.zip
的存檔:
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
或者,我們可以使用 -LiteralPath
引數而不是 -Path
引數單獨壓縮 Temp 資料夾中的檔案。這將建立一個僅包含 -LiteralPath
引數中列出的兩個檔案的存檔:
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
我們新增了 -Force
引數來覆蓋我建立的第一個存檔。如果沒有 -Force
引數,你將無法替換現有存檔,Windows PowerShell 將提示你將檔案新增到存檔中。
要將多個檔案新增到存檔中,我們可以使用 -Update
引數。例如,下面的命令將 Invoices
資料夾中的所有檔案新增到我現有的 Temp_Files.zip
存檔中:
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
我們還可以將 -CompressionLevel
引數與三個值之一一起使用:NoCompression
、Optimal
或 Fastest
。
如果表示式中不存在 -CompressionLevel
引數,則 Optimal
是預設值。Optimal
壓縮使用最佳壓縮,但它可能需要比 Fastest
更長的時間。
使用 NoCompression
值建立不壓縮的存檔。
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
使用 PowerShell 解壓縮檔案
要從存檔中提取檔案,我們需要指定存檔的名稱和解壓縮檔案的目標資料夾。
使用 Expand-Archive
命令會將 Temp_Files.zip
存檔的內容提取到 Temp
資料夾。
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive
將自動建立提取檔案的資料夾。
但是,如果我們解壓的壓縮檔案已經存在於目標資料夾中,Expand-Archive
會報錯。我們可以通過在命令列中新增 -Force
引數來覆蓋目標資料夾中的檔案。
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn