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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

Compress-Archive压缩文件

Compress-Archive
        [-Path] <String[]>
        [-DestinationPath] <String>
        [-CompressionLevel <String>]
        [-PassThru]
        [-WhatIf]
        [-Confirm]
        [<CommonParameters>]

参数说明

序号

参数

说明

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 子目录

备份的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打开

$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] <String>
      [[-DestinationPath] <String>]
      [-Force]
      [-PassThru]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

举例将上面备份的文件解压缩到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之前我使用的是WinRar的命令行模式也可以实现压缩和解压缩功能但是有个问题就是必须安装WinRar使用PowerShell就无需安装WinRar程序了。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: shell