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

[玩转系统] PowerShell - 解压缩文件 [3 种方法]

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

PowerShell - 解压缩文件 [3 种方法]


使用 Expand-Archive Cmdlet

使用 Expand-Achrive cmdlet 在 PowerShell 中解压缩文件/文件夹

使用 Expand-Achrive Cmdlet:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath E:\ExtractedFolderA

请注意,Expand-Archive cmdlet 从 PowerShell 5 开始可用。打印环境变量 $PSVersionTable.PSVersion 以检查 PowerShell 的版本。

我们使用 Expand-Achrive cmdlet 从给定位置解压缩文件夹并将解压缩的文件夹保存在指定目标中。请注意,如果给定目标中不存在 ExtractedFolderA 文件夹,此 cmdlet 将创建该文件夹。

存档文件允许将许多文件打包并压缩(可选)到一个压缩文件中,以便更易于存储和分发。

如果我们已经将文件解压到指定目的地,但由于某种原因想要再次解压怎么办?这是我们可以使用 -Force 参数的地方,该参数用于覆盖目标路径中的文件/文件夹(如果相同的文件/文件夹已存在)。

请注意,-Force 参数会在未经用户确认的情况下进行覆盖,因此在使用时请注意,如下所示。

使用带有 -Force 参数的 Expand-Achrive Cmdlet:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath E:\ExtractedFolderA -Force

我们可以使用以下命令将提取的数据保存在当前目录中,该目录用点(.)表示。

使用 Expand-Ahrive Cmdlet 在本地目录中提取:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath .

请记住,如果文件名中包含通配符,我们可以使用 -LiteralPath 参数名称而不是 -Path ;请参见以下示例。

使用 Expand-Ahrive Cmdlet 在本地目录中提取:

Expand-Archive -LiteralPath E:\Test\FolderA[v1].zip -DestinationPath .

使用 System.IO. Compression.ZipFile 命名空间

要在 PowerShell 中解压缩文件/文件夹:

  • 在脚本中添加对 System.IO. Compression.Filesystem 程序集的引用。
  • 使用 System.IO.Compression.ZipFile 命名空间将文件/文件夹解压缩到目标路径中。

使用 System.IO. Compression.ZipFile 命名空间:

Add-Type -Assembly "System.IO.Compression.Filesystem"
[System.IO.Compression.ZipFile]::ExtractToDirectory("E:\Test\FolderA.zip",".")

在上面的代码中,我们使用Add-Type添加了程序集;如果 ZipFile 类在 PowerShell 中不可用,则需要它。接下来,我们使用.Net命名空间System.IO.CompressionZipFile来解压缩文件/文件夹或从指定的压缩文件中提取数据。

.Net Framework 4.5 中引入了 ZipFile 类来管理存档文件;它提供静态方法来创建、提取和打开存档文件。在这里,我们使用 ExtractToDirectory() 方法将压缩文件从源路径提取到目标路径。

要读取存档文件,请使用OpenRead()。我们还可以使用 Select-Object cmdlet 列出所有提取的项目。请参阅以下示例。

使用 System.IO. Compression.ZipFile 命名空间:

$entries = [System.IO.Compression.ZipFile]::OpenRead("E:\Test\FolderB.zip") 
$entries.Entries | Select-Object -Property Name

输出 :

Name
----
File1.txt
File2.txt

使用 7Zip 模块

使用7Zip模块在PowerShell中解压缩文件/文件夹

使用 7Zip 模块:

Expand-7Zip -ArchiveFileName E:\Test\FolderB.zip -TargetPath E:\ExtractedB

它类似于我们在文章开头学习的Expand-Achrive。在这里,我们使用 -ArchiveFileName 参数名称来指定压缩文件的来源,而 -TargetPath 用于写入我们要保存提取项目的目标路径。

如果您收到任何消息说无法识别或找不到7Zip模块,则必须使用以下命令先安装7Zip模块,然后执行该命令上面给出了解压。

安装 7Zip 模块:

Install-Module 7Zip4PowerShell -Scope CurrentUser -Force -Verbose 

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

取消回复欢迎 发表评论:

关灯