当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:如何提取 Zip 文件?

作者:精品下载站 日期:2024-12-14 21:45:35 浏览:13 分类:玩电脑

PowerShell:如何提取 Zip 文件?


ZIP 文件格式广泛用于将文件压缩为单个存档,从而减小文件大小并使其更易于共享和存储。作为系统管理员或 IT 专业人员,您可能会发现自己经常处理大量压缩文件。必须手动提取大量文件可能是一项乏味且耗时的任务。幸运的是,PowerShell 提供了一套全面的命令,可以帮助您自动化此过程并提高效率。在本指南中,我们将详细了解如何使用 PowerShell 从档案中提取文件。

[玩转系统] PowerShell:如何提取 Zip 文件?

PowerShell 解压缩简介

PowerShell 是一种功能强大的脚本语言,可让您自动执行许多不同的任务,包括文件提取和压缩。使用 PowerShell,您可以轻松地从压缩档案中提取文件,以及创建您自己的压缩文件。 PowerShell 使用一组 cmdlet(发音为“command-let”)来执行这些操作。 cmdlet 是执行特定操作的轻量级命令。对于文件提取和压缩,PowerShell 提供了 Expand-ArchiveCompress-Archive cmdlet,您可以使用它们自动执行这些任务。

了解 PowerShell 解压缩命令 Expand-Archive

PowerShell unzip 是指使用 PowerShell 命令从 ZIP 存档中提取文件和文件夹的过程。 Expand-Archive cmdlet 用于从压缩存档中提取文件。要使用 PowerShell unzip 命令,您需要知道要从中提取文件的压缩存档的路径和名称。您还需要指定要将文件提取到的路径。 Expand-Archive cmdlet 是一个内置的 PowerShell 命令,允许您从 ZIP 存档中提取文件。此 cmdlet 是 Microsoft.PowerShell.Archive 模块的一部分。 Expand-Archive cmdlet 是在 Windows PowerShell 5.1 中引入的。您无需安装任何其他软件即可使用 PowerShell Unzip。它已经安装在您的 Windows 计算机上。

如何使用 PowerShell 解压缩文件?

现在您已经了解了 PowerShell 解压缩命令 Expand-Archive 的方式。让我们看一下如何使用 PowerShell 从压缩档案中提取文件。要使用 Expand-Archive cmdlet,您需要指定 ZIP 文件的路径以及存储解压文件的目标路径。

如果您想从 zip 文件夹中提取单个文件,可以使用以下命令:


Expand-Archive -Path "C:\Temp\LogsArchive.zip" -DestinationPath "C:\Temp\Logs"

此命令将从位于“C:\Temp\LogsArchive.zip”的存档中提取所有文件,并将它们放入位于“C:\Temp\Logs”的文件夹中。您可以通过导航到目标目录并检查文件是否存在来验证文件是否已正确提取。

[玩转系统] PowerShell:如何提取 Zip 文件?

如果 zip 文件位于当前文件夹中,我们只需使用 LiteralPathPath 参数以及可选的 DestinationPath 指定 zip 文件> 参数值。如果未提供“DestinationPath”参数,则会将存档解压到当前目录。


Expand-Archive -LiteralPath ".\Scripts.zip"

作为一名计算机用户,我经常发现自己正在处理压缩格式的大文件,例如 zip 或 tar.gz。如果您没有合适的工具,从这些格式中提取文件可能会很麻烦。 PowerShell Unzip 是一个功能强大的命令行工具,可以帮助您快速高效地从压缩格式中提取文件。

提取期间覆盖现有文件

如果您想在提取过程中覆盖现有文件,可以使用-Force参数:


Expand-Archive -Path 'C:\Archives\Example.zip' -DestinationPath 'C:\ExtractedFiles' -Force

通过包含 -Force 参数,PowerShell 将在必要时使用提取的文件覆盖现有文件。

如何使用 PowerShell 提取文件夹中的所有 zip 文件

如果您发现自己需要解压一个目录中的多个 ZIP 文件,则无需一一执行此操作。相反,您可以使用 PowerShell!假设您想要提取目录“C:\Archives”中存在的所有 ZIP 文件。您首先需要获取该目录中的所有 ZIP 文件,然后将它们一一解压。 Get-ChildItem cmdlet,我们将利用 foreach 循环来迭代每个文件。

以下是用于提取文件夹中所有 zip 文件的 PowerShell 脚本:


Get-ChildItem "C:\Archives" -Filter *.zip | ForEach { 
    Expand-Archive -Path $_.FullName -DestinationPath "C:\Extracted" -Force
}

[玩转系统] PowerShell:如何提取 Zip 文件?

上述命令会将所有 zip 文件从文件夹“C:\Archives”提取到“C:\Extracted”。

使用 ZipFile.ExtractToDirectory 方法

使用 PowerShell 解压缩文件的另一种方法是使用 .NET 框架中提供的 ZipFile.ExtractToDirectory 方法。此方法允许您使用 System.IO.Compression.ZipFile 类从 ZIP 存档中提取文件。它对于较低版本的 .NET 特别有用,例如 Windows PowerShell 5.1。

ZipFile.ExtractToDirectory 的语法

使用 ZipFile.ExtractToDirectory 方法的语法如下:


Add-Type -AssemblyName System.IO.Compression.FileSystem

[System.IO.Compression.ZipFile]::ExtractToDirectory(<SourceFile>, <DestinationPath>)

在语法中, 参数指定 ZIP 文件的路径, 参数指定将存储提取的文件的文件夹。

使用 ZipFile.ExtractToDirectory 的示例

让我们看一下使用 ZipFile.ExtractToDirectory 方法通过 PowerShell 解压缩文件的一些示例。要提取 ZIP 存档的内容,请使用以下命令:


Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory("C:\Archives\Example.zip", "C:\ExtractedFiles")

在此示例中,Add-Type 命令加载 System.IO.Compression.FileSystem 程序集,[System.IO.Compression.ZipFile]::ExtractToDirectory 命令提取将 ZIP 存档中的文件复制到指定的目标文件夹。

提取期间覆盖现有文件

要在提取过程中覆盖现有文件,您可以在 ExtractToDirectory 方法中包含第三个参数 true


Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory("C:\Archives\Example.zip", "C:\ExtractedFiles", $true)

通过指定 $true,PowerShell 将在必要时使用提取的文件覆盖现有文件。

解决 PowerShell 解压缩的常见问题

虽然 PowerShell 解压缩操作通常很简单,但您可能会遇到一些常见问题。以下是一些故障排除提示,可帮助您克服这些挑战:

  • 验证 ZIP 文件路径和目标文件夹路径是否正确且可访问。
  • 检查 ZIP 文件是否已损坏或使用需要额外步骤才能提取的密码进行加密。
  • 确保您拥有从 ZIP 存档中提取文件并将文件写入目标文件夹所需的权限。
  • 将 PowerShell 版本和模块更新到最新版本,以便从可能解决任何已知问题的错误修复和改进中受益。

结论

PowerShell 是系统管理员的强大工具,可以使解压缩文件等任务变得更加容易。通过遵循本指南中概述的步骤,您可以成为 PowerShell Unzip 大师并像专业人士一样提取文件。无论您有一个还是多个存档文件,PowerShell 都可以让解压缩变得轻而易举。希望本文能让您了解 PowerShell 的强大功能,并帮助您更有效地管理自动化任务。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯