You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何忽略已压缩文件并删除原始文件?7zip批处理优化求助

解决7-Zip批处理重复压缩及删除原文件问题

我懂你这个烦恼!之前用批处理跑7-Zip的时候也踩过重复压缩的坑,给你调整一下代码就能同时解决「忽略已有的.zip文件」和「压缩完成后删除原始文件」这两个需求:

FOR %%i IN ("C:\filepath....\*HAEC040.D*") DO (
    IF NOT "%%~xi"==".zip" (
        "C:\Program Files\7-Zip\7z.exe" a -mx -sdel "%%~i.zip" "%%i"
    )
)

关键修改点说明:

  • 忽略.zip文件:通过IF NOT "%%~xi"==".zip"判断当前文件的后缀名,如果不是.zip才执行压缩操作,彻底避免重复处理已经生成的压缩包。
  • 压缩后安全删除原文件:给7-Zip命令加上-sdel参数,这个参数会在压缩成功完成后自动删除原始文件,比单独加del命令更稳妥——不会因为压缩失败、文件损坏等情况误删源文件。
  • 保留了你原代码里的-mx参数,这是7-Zip的默认压缩级别,要是需要更高压缩率可以改成-mx9,追求速度的话就换成-mx1

如果担心误删,建议先去掉-sdel参数测试几次,确认压缩出来的文件完全没问题后,再加上这个参数正式运行。

内容的提问来源于stack exchange,提问作者Angel

火山引擎 最新活动