PowerShell 解壓

Migel Hewage Nimesha 2023年1月30日
  1. Expand-Archive 語法 1
  2. Expand-Archive 語法 2
  3. Expand-Archive 引數
  4. PowerShell 解壓縮檔案示例
PowerShell 解壓

ZIP 檔案型別通過將檔案壓縮為單個檔案來最小化其大小。這種方法可以節省硬碟空間,加密資訊,並使彼此交換檔案變得簡單。

PowerShell 使用 Expand-Archive 命令從 ZIP 檔案所在的同一目錄或指定目標路徑上的特定 Zip 檔案中提取檔案和資料夾。

在這裡,我們可以使用兩種不同的語法進行刪除。這兩個可以單獨使用,但不能組合使用。

Expand-Archive 語法 1

這裡使用了路徑屬性,在給出路徑時可以使用萬用字元。

Expand-Archive
      [-Path] <String>
      [[-DestinationPath] <String>]
      [-Force]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Expand-Archive 語法 2

下一個選項是文字路徑。這裡,給出的路徑應該是準確的,因為它被認為是給定的,並且不允許使用萬用字元。如果路徑包含轉義字元,請將每個轉義字元括在單引號內,以告訴 PowerShell 不應將任何字元解釋為轉義模式。

Expand-Archive
      -LiteralPath <String>
      [[-DestinationPath] <String>]
      [-Force]
      [-PassThru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Expand-Archive 引數

下面給出了最常用引數的名稱和描述。

引數名稱 說明
-Confirm 在執行 cmdlet 之前提示確認
-DestinationZip 指定解壓縮資料夾的路徑。如果資料夾不存在,則建立目標資料夾
-Force 在不確認的情況下強制執行 cmdlet
-LiteralPath 給出存檔檔案的路徑。文字路徑值完全按照其給定。
-PassThru 輸出從存檔擴充套件的檔案列表
-Path 指定歸檔檔案的路徑
-WhatIf 顯示如果 cmdlet 在沒有實際執行的情況下執行會發生什麼

PowerShell 解壓縮檔案示例

示例 1:

當前目錄中的當前存檔檔案的專案被提取到此示例中的 -DestinationPath 選項提供的資料夾中。

Expand-Archive -Path test.Zip -DestinationPath C:\Test

示例 2:

從存檔中提取檔案比建立檔案更容易。你所要做的就是提供存檔的名稱和解壓縮檔案的目標位置。使用 Expand-Archive cmdlet,下面的程式碼將測試 zip 存檔的內容匯出到目標路徑變數中的指定資料夾 TestUnzipped。

Expand-Archive -LiteralPath 'C:\Archives\test[v1].Zip' -DestinationPath C:\TestUnzipped

由於檔名包含可能被解釋為萬用字元的字元,因此使用了 LiteralPath 選項。

如果不使用 -DestinationPath 引數,PowerShell 會將檔案解壓縮到當前根資料夾中,並使用 Zip 檔案的檔名構建一個新資料夾。

當 PowerShell 嘗試提取檔案時,如果該目錄現在存在於目標中,則會引發錯誤。使用 -Force 引數,你可以推送 PowerShell 以用新資料替換舊資料。

僅當確實不再需要舊檔案時才應使用 -Force 引數,因為它將永久覆蓋你計算機上的檔案。

ZIP 檔案將檔案和目錄壓縮並儲存到單個文件中。無需安裝任何軟體,PowerShell 就可以通過各種方法檢索它們。上述方法適用於跨平臺和原生應用程式。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.