如何用Compress-Archive一次性压缩指定文件夹与文件?
我来帮你搞定这个一次性打包指定文件和文件夹的需求!针对Windows环境下的场景,我整理了几种常用工具的实现方式,都是一次性传入目标列表完成压缩的思路:
使用PowerShell(系统自带,无需额外安装)
这是最省心的方案,直接用Windows内置的命令就行:
# 先切换到目标目录 Set-Location -Path "C:\test" # 一次性传入要压缩的对象列表,直接打包到result.zip Compress-Archive -Path .\dir1, .\dir2, .\file1.txt, .\file2.txt -DestinationPath .\result.zip -Force
- 小提示:
-Force参数可以覆盖已存在的result.zip,如果不需要覆盖可以去掉;要是脚本里需要复用这个列表,还可以把目标存成变量:
$targetItems = @(".\dir1", ".\dir2", ".\file1.txt", ".\file2.txt") Compress-Archive -Path $targetItems -DestinationPath .\result.zip -Force
使用7-Zip(需提前安装)
如果习惯用7-Zip,命令行也支持一次性传入所有目标:
cd /d C:\test "C:\Program Files\7-Zip\7z.exe" a -tzip result.zip .\dir1\ .\dir2\ .\file1.txt .\file2.txt
- 参数说明:
a表示添加文件到压缩包,-tzip指定压缩格式为ZIP,后面直接用空格分隔所有要打包的路径即可。
使用WinRAR(需提前安装)
WinRAR的命令行同样支持一次性传入目标列表:
cd /d C:\test "C:\Program Files\WinRAR\WinRAR.exe" a -r result.zip .\dir1 .\dir2 .\file1.txt .\file2.txt
- 参数说明:
a是添加到压缩包,-r表示递归压缩文件夹里的所有内容,后面直接列出所有需要打包的文件/文件夹路径。
内容的提问来源于stack exchange,提问作者MHOOS
相关产品推荐
相关产品推荐

