前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows 7z命令行压测示例

Windows 7z命令行压测示例

原创
作者头像
Windows技术交流
修改2024-06-24 18:30:55
1660
修改2024-06-24 18:30:55
举报
文章被收录于专栏:Windows技术交流Windows技术交流

Windows BAT中7zip压缩时排除某些目录

具体命令是:

"C:\Program Files\7-Zip\7z.exe" a -t7z 文件名.7z 目录 -xr!子目录名称

代码语言:txt
复制
#mkdir -force "C:\path\to\your\"
#del C:\path\to\your\output.7z 2>$null

# 创建输出目录并删除现有的输出文件(如果存在)
New-Item -ItemType Directory -Path "C:\path\to\your\" -Force
Remove-Item "C:\path\to\your\output.7z" -ErrorAction SilentlyContinue


# 7-Zip 可执行文件路径
$7zPath = "$env:ProgramFiles\7-Zip\7z.exe"

# 要压缩的文件或文件夹路径
$sourcePath = "C:\windows\system32"

# 压缩后的输出文件路径
$outputPath = "C:\path\to\your\output.7z"

# 排除的子目录
$excludedDirs = @(
    "config",
    "WebThreatDefSvc",
    "catroot2",
    "LogFiles",
    "Microsoft",
    "msmq",
    "SleepStudy",
    "Tasks",
    "wbem",
    "WDI",
    "winevt",
    "spp",
    "sru"
)

# 生成排除参数
$excludeArgs = $excludedDirs | ForEach-Object { "-xr!$($_.Substring(0))" }
$excludeArgs
# 以最快速度(-mx1)压缩文件
$compressJob = Start-Job -ScriptBlock {
    param($7zPath, $sourcePath, $outputPath, $excludeArgs)
    & $7zPath a -mx1 $outputPath $sourcePath $excludeArgs 2>$null
} -ArgumentList $7zPath, $sourcePath, $outputPath, $excludeArgs

# 等待 10 分钟
Start-Sleep -Seconds 600

# 停止压缩作业
Stop-Job -Job $compressJob

# 接收压缩作业的结果(如果需要)
$jobResult = Receive-Job -Job $compressJob

# 删除压缩作业
Remove-Job -Job $compressJob

# 输出压缩作业结果
$jobResult

如果要显示过程中的报错,把 & $7zPath a -mx1 $outputPath $sourcePath $excludeArgs 2>$null 这一行结尾的 2>$null 去掉,报错的路径可以添加到这个模块的结尾

我是win11系统,system32目录排除上述子目录后,压缩为.7z有3GB多

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档