有时,使用编程方式创建 zip 压缩包或从现有压缩包中解压文件会很有用。Windows PowerShell 5.0 添加了两个用于实现上述目的的 cmdlet。The Compress-Archive cmdlet 可让你从文件夹或单个文件创建新的归档,并向归档中添加文件; Extract-Archive 可用于解压文件。
精选相关内容:
如果你的系统尚未安装 PowerShell 5.0 或更高版本,你可以从 Microsoft 的网站下载 Windows Management Framework 的最新版本。
使用 PowerShell 创建 Zip 文件
我们先从使用 PowerShell 压缩一个新的 zip 存档中的文件开始。你只需要使用 -Path 参数来指定要压缩的文件夹,以及 –DestinationPath 参数来指定你要创建的存档名称。下面的命令会将根目录 C 盘中的 Invoices 文件夹打包成 zip,并在 Archives 文件夹中创建一个名为 Invoices.zip 的存档:
Compress-Archive -Path C:Invoices -DestinationPath C:ArchivesInvoices
或者,我们也可以使用 -LiteralPath 来逐个 zip 压缩 Invoices 文件夹中的文件,而不是使用 –Path。该命令会创建一个仅包含在 –LiteralPath 参数中明确列出的两个文件的存档:
Compress-Archive -LiteralPath C: InvoicesFile1.txt, C:InvoicesFile2.txt -DestinationPath C:ArchivesInvoices -Force
请注意,我在这里添加了 -Force 参数,以便覆盖使用第一个命令创建的存档。如果没有 -Force 参数,就无法覆盖现有存档,PowerShell 将提示你改为向存档中添加文件。
要将文件添加到归档,请使用 -Update 参数。下面的命令会将 Invoices 文件夹中的所有文件添加到我现有的 Invoices.zip 归档中:
Compress-Archive -Path C:Invoices* -Update -DestinationPath C:ArchivesInvoices
可选地,您可以使用 -CompressionLevel 参数,并从三个值中选择一个:Optimal、NoCompression 或 Fastest。若未设置 -CompressionLevel 参数,则 Optimal 为默认设置;它会使用可用的最佳压缩,但可能比使用 Fastest 花费更长时间。要创建不进行压缩的归档,请使用 NoCompression 值。
精选相关内容:
使用 PowerShell 解压文件
从归档中提取文件甚至比创建归档更容易。您只需指定归档的名称以及解压后文件的目标文件夹。下面的命令会使用 Expand-Archive cmdlet 将 Invoices.zip 归档的内容提取到名为 InvoicesUnzipped 的文件夹中。
Expand-Archive -LiteralPath C:ArchivesInvoices.Zip -DestinationPath C: InvoicesUnzipped
你想要解压文件的文件夹不必事先存在;Expand-Archive 会在需要时自动创建该文件夹。但如果你要解压的文件已存在于目标文件夹中,则 Expand-Archive 会返回错误。你可以通过在命令中添加 -Force 参数来覆盖目标文件夹中的文件。
分享到
了解更多
关于作者
Russell Smith
IT 顾问
专注于管理与安全技术的 IT 顾问和作者。Russell 拥有超过 15 年的 IT 经验,撰写过一本关于 Windows 安全的书籍,并共同撰写了 Microsoft 官方学术课程(MOAC)系列的相关教材。