使用 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