登录
首页 >  文章 >  软件教程

PowerShell压缩解压文件教程

时间:2026-04-16 18:39:36 347浏览 收藏

本文详细介绍了如何利用PowerShell原生命令Compress-Archive和Expand-Archive在Windows系统中高效、安全地完成ZIP格式的压缩与解压操作——无需安装第三方工具,即可支持多路径打包、自定义压缩级别、自动创建目标目录、强制覆盖文件、批量处理子目录,完美兼容中文路径和特殊字符,并提供基于.NET的压缩包完整性验证方法,是运维人员、开发工程师及日常用户提升自动化文件管理效率的实用指南。

Windows怎么用PowerShell压缩和解压文件_Windows如何用Compress-Archive创建zip压缩包【命令】

如果您需要在Windows系统中通过命令行快速完成文件压缩与解压操作,PowerShell提供了原生支持的Compress-Archive和Expand-Archive命令。以下是具体执行步骤:

一、使用Compress-Archive创建ZIP压缩包

Compress-Archive命令可将指定文件或文件夹打包为标准ZIP格式,无需第三方工具,输出文件默认采用UTF-8编码,兼容主流解压软件。

1、以管理员身份打开PowerShell窗口。

2、输入以下命令,将D:\Documents文件夹压缩为D:\backup.zip:
Compress-Archive -Path "D:\Documents" -DestinationPath "D:\backup.zip"

3、若需压缩多个不连续路径,用逗号分隔并加引号:
Compress-Archive -Path "C:\file1.txt", "D:\folder2" -DestinationPath "E:\combined.zip"

4、添加-CompressionLevel参数可控制压缩强度,可选值为Fastest、Optimal(默认)、NoCompression:
Compress-Archive -Path "D:\data" -DestinationPath "D:\data_min.zip" -CompressionLevel Fastest

二、使用Expand-Archive解压ZIP文件

Expand-Archive命令用于解压ZIP格式归档,支持指定目标目录,自动重建原始目录结构,不覆盖同名文件时会报错提示。

1、在PowerShell中执行解压命令,将D:\archive.zip解压至D:\extracted目录:
Expand-Archive -Path "D:\archive.zip" -DestinationPath "D:\extracted"

2、若目标目录不存在,命令会自动创建该目录。

3、添加-Force参数可强制覆盖已存在的同名文件:
Expand-Archive -Path "D:\archive.zip" -DestinationPath "D:\extracted" -Force

三、通过Get-ChildItem配合管道实现批量压缩

当需对符合特定条件的多组文件分别压缩时,可结合Get-ChildItem枚举路径,并用ForEach-Object逐个调用Compress-Archive。

1、将D:\Reports下所有子文件夹各自压缩为独立ZIP包:
Get-ChildItem -Path "D:\Reports" -Directory | ForEach-Object { Compress-Archive -Path $_.FullName -DestinationPath ("D:\Zipped\" + $_.Name + ".zip") }

2、确保D:\Zipped目录已存在,否则需提前使用New-Item创建。

四、处理含中文路径或特殊字符的归档

PowerShell默认支持Unicode路径,但需确保路径字符串被双引号包围,避免空格或括号引发解析错误。

1、压缩路径含中文和空格的文件夹:
Compress-Archive -Path "D:\我的文档\项目资料" -DestinationPath "D:\备份\项目资料.zip"

2、若出现“找不到路径”错误,检查路径是否存在,务必确认引号为英文半角且成对出现

3、使用Resolve-Path验证路径有效性:
Resolve-Path "D:\我的文档\项目资料"

五、验证压缩包完整性

PowerShell本身不提供内置校验命令,但可通过调用.NET类库读取ZIP条目数量,间接判断是否为空包或结构异常。

1、获取D:\test.zip内文件总数:
[System.IO.Compression.ZipFile]::OpenRead("D:\test.zip").Entries.Count

2、返回值为0表示压缩包为空;返回值为负数或报错说明文件损坏或非ZIP格式。

3、执行前请确保已运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser授权脚本执行

到这里,我们也就讲完了《PowerShell压缩解压文件教程》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>