在自动构建的时候,最常用的就是压缩备份项目的源文件,PowerShell提供了相关命令。
Compress-Archive(压缩文件)
Compress-Archive
[-Path] <String[]>
[-DestinationPath] <String>
[-CompressionLevel <String>]
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
参数说明:
序号 | 参数 | 说明 |
1 | -Path | 指定想要添加到存档压缩文件的文件的路径。 若要指定多个路径并在多个位置中包含文件,请使用逗号分隔路径。 此参数接受通配符。 使用通配符可以将目录中的所有文件添加到存档文件。 对根目录使用通配符会影响存档的内容:
|
2 | -DestinationPath | 此参数是必需的,指定存档输出文件的路径。 DestinationPath 应包含压缩文件的名称,以及压缩文件的绝对路径或相对路径。 如果 DestinationPath 中的文件名没有 .zip 文件扩展名,则 cmdlet 将添加 .zip 文件扩展名。 |
3 | -CompressionLevel | 指定在创建存档文件时要应用的压缩量。 较快的压缩需要的文件创建时间较少,但可能导致文件大小较大。 如果未指定此参数,该命令将使用默认值 Optimal。 以下是此参数的可接受值:
|
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程序了。