Windows环境7Z批量压缩打包

实用技术windows7z7zip压缩脚本一键
浏览数 - 527发布于 - 2024-08-21 - 16:26
Misuzu
Misuzu

960

usami.hakana_all time favorite_96769924_p0.jpg

前言

虽然7Z可以全选一键批量解压但是没有批量打包,对于有大批量压缩打包Galgame需求的人来说比较不方便,下面就让杂鱼酱给大家带来一种解决办法把~~杂鱼❤️~~

脚本使用说明

使用方法:

  1. 复制进 VScode 或者 TXT记事本 后保存为 .bat 脚本,TXT 中就更改 .txt 后缀名为 .bat,之后设置自己要打包的参数。

  2. 将 7Z 的安装路径,比如默认的 C:\Program Files\7-Zip 添加进入系统 PATH 变量:

    • 打开设置——系统——系统信息——高级系统设置——高级页面右下角 环境变量——用户变量名 path——新建,然后将 7Z 安装路径复制进去点击确定。

脚本参数说明:

  • GTR 4000 和 -v4000 表示分卷大小为 4000MB

    • 脚本工作时会自动检测所要打包的文件夹的大小,如果不超过此分卷设置大小就不会进行分卷打包;如果超过则会打包为 7z.001 型分卷。
  • -p"你的密码" 是设置密码的选项,如果不需要设置密码,可以将此参数删除。如果要设置中文解压密码就在@echo off下面添加一个chcp 65001,可查看最后的中文密码设置的实例脚本

  • -mx0 表示压缩等级,最高为 -mx9

  • -mmt16 表示调用CPU的 16线程。具体设置打开任务管理器数数CPU的框框数目来确定自己的 CPU线程数 进行调整。

脚本说明:

此脚本默认调用 7Z 的 LZMA2 算法。

分卷压缩打包脚本

@echo off

setlocal enabledelayedexpansion

:: 指定7-Zip的执行路径,此处要将7Z添加进系统变量中
set "sevenZipPath=7z.exe"

:: 指定目标目录,注意路径要全英文,不过待打包游戏文件夹不用全英文
set "targetDir=D:\COMPRESS\yuzusoft"

cd /d %targetDir%

for /d %%d in (*) do (
    echo Compressing: %%d

    :: 使用 PowerShell 计算文件夹的总大小
    for /F "usebackq" %%s in (`powershell -NoProfile -Command "(Get-ChildItem '%%d' -Recurse | Measure-Object -Property Length -Sum).Sum / 1024 / 1024"`) do set /A folderSize=%%s

    echo Folder size: !folderSize! MB

    if !folderSize! GTR 4000 (
        echo Folder is larger than 4000M, using volume splitting.
        "!sevenZipPath!" a -t7z "%%d.7z" "%%d\*" -mx0 -mmt16 -p"此处输入你要设置的压缩包密码" -v4000m
    ) else (
        echo Folder is smaller than 4000M, not using volume splitting.
        "!sevenZipPath!" a -t7z "%%d.7z" "%%d\*" -mx0 -mmt16 -p"此处输入你要设置的压缩包密码"
    )

    echo Done: %%d
)

echo All folders have been compressed appropriately.
pause

无分卷压缩打包脚本

@echo off
setlocal enabledelayedexpansion

:: 指定7-Zip的执行路径,此处要将7Z添加进系统变量中
set "sevenZipPath=7z.exe"

:: 指定目标目录,注意路径要全英文,不过待打包游戏文件夹不用全英文
set "targetDir=C:\Users\NEKO\Galgame"

cd /d %targetDir%

:: 遍历目标目录中的所有文件夹
for /d %%d in (*) do (
    echo Compressing folder: %%d
    :: 设置压缩包文件名
    set "archiveName=%%d.7z"
    :: 执行7-Zip命令进行压缩
    !sevenZipPath! a -t7z -mx0 -mmt16 -p"nullneko" "!archiveName!" "%%d\"
)

echo All folders have been compressed appropriately.
pause

中文密码设置示例

@echo off
chcp 65001
setlocal enabledelayedexpansion

set "sevenZipPath=7z.exe"

set "targetDir=D:\GalgamesCOMPRESS"

cd /d %targetDir%

for /d %%d in (*) do (
    echo Compressing: %%d

    for /F "usebackq" %%s in (`powershell -NoProfile -Command "(Get-ChildItem '%%d' -Recurse | Measure-Object -Property Length -Sum).Sum / 1024 / 1024"`) do set /A folderSize=%%s

    echo Folder size: !folderSize! MB

    if !folderSize! GTR 4000 (
        echo Folder is larger than 4000M, using volume splitting.
        "!sevenZipPath!" a -t7z "%%d.7z" "%%d\*" -mx5 -mmt16 -p"杂鱼" -v4000m
    ) else (
        echo Folder is smaller than 4000M, not using volume splitting.
        "!sevenZipPath!" a -t7z "%%d.7z" "%%d\*" -mx5 -mmt16 -p"杂鱼"
    )

    echo Done: %%d
)

echo All folders have been compressed appropriately.

傲娇的ALIEN_二階堂真紅_120711903_p0.png

3 条回复

Cccc_
发布于 2024-08-21 - 16:29

好!杂鱼杂鱼

鲲

5370

#2
发布于 2024-08-21 - 18:49

呜呜呜呜呜呜呜呜呜呜呜!!!喜欢配图

Misuzu
发布于 2024-08-22 - 00:04
回复 @鲲#2

呜呜呜呜呜呜呜呜呜呜呜!!!喜欢配图

评论

鲲
评论Misuzu

不是杂鱼!!!!!!

2024-08-22 - 02:57

(。>︿<。) 已经一滴回复都不剩了哦~