PowerShell 学习笔记:压缩、解压缩文件

在自动构建的时候,最常用的就是压缩备份项目的源文件,PowerShell提供了相关命令。

Compress-Archive(压缩文件

Compress-Archive
        [-Path] 
        [-DestinationPath] 
        [-CompressionLevel ]
        [-PassThru]
        [-WhatIf]
        [-Confirm]
        []

参数说明:

序号

参数

说明

1

-Path

指定想要添加到存档压缩文件的文件的路径。 若要指定多个路径并在多个位置中包含文件,请使用逗号分隔路径。

此参数接受通配符。 使用通配符可以将目录中的所有文件添加到存档文件。

对根目录使用通配符会影响存档的内容:

  • 若要创建 包含 根目录及其所有文件和子目录的存档,请在 路径 中指定不带通配符的根目录。 例如: -Path C:\Reference

  • 若要创建 排除 根目录但压缩其所有文件和子目录的存档,请使用星号 (*) 通配符。 例如: -Path C:\Reference\*

  • 若要创建仅压缩根目录中文件的存档,请使用 星点星形 (*.*) 通配符。 根目录不包含在存档中。 例如: -Path C:\Reference\*.*

2

-DestinationPath

此参数是必需的,指定存档输出文件的路径。 DestinationPath 应包含压缩文件的名称,以及压缩文件的绝对路径或相对路径。

如果 DestinationPath 中的文件名没有 .zip 文件扩展名,则 cmdlet 将添加 .zip 文件扩展名。

3

-CompressionLevel

指定在创建存档文件时要应用的压缩量。 较快的压缩需要的文件创建时间较少,但可能导致文件大小较大。

如果未指定此参数,该命令将使用默认值 Optimal

以下是此参数的可接受值:

  • 最快。 使用可用的最快压缩方法来缩短处理时间。 更快的压缩可能会导致更大的文件大小。

  • NoCompression。 不压缩源文件。

  • 最佳: 处理时间取决于文件大小。

4

-PassThru

使 cmdlet 输出表示所创建的存档文件的文件对象。

5

-WhatIf

显示运行该 cmdlet 时会发生什么情况。

6

-Confirm

提示你在运行 cmdlet 之前进行确认。

7

-Force

强制运行命令而不要求用户确认。如果目标文件已经存在,则直接覆盖

8

-Update

汇报指定的存档,方法是将存档中的较旧文件版本替换为具有相同名称的较新文件版本。 此外,还可添加此参数,将文件添加到现有存档。

举例:备份如下目录中的文件,但是不包含:node_modules 子目录

PowerShell 学习笔记:压缩、解压缩文件_第1张图片

备份的zip文件位于: Z:\Documents\sensorwu\VUE\VUE3\Backup.zip

$compress = @{
  Path = "Z:\Documents\sensorwu\VUE\VUE3\szhn_app_vue3\dist", "Z:\Documents\sensorwu\VUE\VUE3\szhn_app_vue3\public","Z:\Documents\sensorwu\VUE\VUE3\szhn_app_vue3\src","Z:\Documents\sensorwu\VUE\VUE3\szhn_app_vue3\*.*"
  CompressionLevel = "Fastest"
  DestinationPath = "Z:\Documents\sensorwu\VUE\VUE3\Backup.zip"
}
Compress-Archive @compress

压缩后文件用winrar打开:

PowerShell 学习笔记:压缩、解压缩文件_第2张图片

$compress = @{
  Path = "Z:\Documents\sensorwu\VUE\VUE3\szhn_app_vue3\*"
  CompressionLevel = "Fastest"
  DestinationPath = "Z:\Documents\sensorwu\VUE\VUE3\Backup.zip"
}
Compress-Archive @compress

Expand-Archive(解压缩文件

Expand-Archive
      [-Path] 
      [[-DestinationPath] ]
      [-Force]
      [-PassThru]
      [-WhatIf]
      [-Confirm]
      []

举例:将上面备份的文件解压缩到:Z:\Documents\sensorwu\VUE\VUE3\szhn_Demo 目录中。

Expand-Archive -Path "Z:\Documents\sensorwu\VUE\VUE3\Backup.zip" -DestinationPath "Z:\Documents\sensorwu\VUE\VUE3\szhn_Demo"

解压后的效果:

PowerShell 学习笔记:压缩、解压缩文件_第3张图片

在学习PowerShell之前,我使用的是WinRar的命令行模式,也可以实现压缩和解压缩功能,但是有个问题就是必须安装WinRar,使用PowerShell就无需安装WinRar程序了。

你可能感兴趣的:(工具,Powershell压缩文件,Expand-Archive,CompressArchive,压缩,解压缩)