使用 PowerShell 壓縮和解壓縮檔案

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月16日
  1. 使用 PowerShell 壓縮檔案
  2. 使用 PowerShell 解壓縮檔案
使用 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 引數與三個值之一一起使用:NoCompressionOptimalFastest

如果表示式中不存在 -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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell File