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

如果您需要在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学习网公众号,带你了解更多关于的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
178 收藏
-
127 收藏
-
315 收藏
-
237 收藏
-
361 收藏
-
458 收藏
-
501 收藏
-
199 收藏
-
157 收藏
-
313 收藏
-
428 收藏
-
251 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习