You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量转换含内嵌RAR的WinRAR4格式压缩包到WinRAR5格式

嵌套RAR格式批量转换解决方案

优化逻辑说明

针对原有脚本无法识别子目录内嵌RAR的问题,优化后的脚本实现以下能力:

  • 用for /r命令递归遍历解压目录下所有层级的.rar文件,不存在路径识别盲区
  • 增加循环校验逻辑,可处理多层嵌套的RAR文件,直到所有内嵌压缩包都完成转换
  • 补充路径预创建、错误屏蔽等容错逻辑,避免异常中断
  • 所有转换过程默认静默执行,无需人工交互确认

最终可运行脚本

@echo off
setlocal enabledelayedexpansion

:: 预创建必要工作目录
if not exist Unconverted md Unconverted
if not exist converted md converted
if not exist z:\temp md z:\temp

:: 遍历当前目录下所有顶层RAR文件
for %%i in (*.rar) do (
    :: 支持手动终止:只要z:\temp\stop文件存在就立即退出
    if exist z:\temp\stop exit /b
    echo 正在处理:"%%i"
    set "base_name=%%~ni"
    md "!base_name!"
    
    :: 解压顶层RAR到临时工作目录
    cd "!base_name!"
    rar x ..\"%%i" -y >nul
    
    :loop_convert_inner
    set "has_rar="
    :: 递归遍历当前目录下所有层级的RAR文件
    for /r %%f in (*.rar) do (
        set "has_rar=1"
        echo 转换内嵌RAR:"%%f"
        set "rar_dir=%%~dpf"
        set "rar_name=%%~nf"
        :: 解压当前内嵌RAR
        cd "!rar_dir!"
        md "!rar_name!_temp"
        cd "!rar_name!_temp"
        rar x "%%f" -y >nul
        :: 重新压缩为WinRAR5格式
        rar a "..\!rar_name!.rar" -r -ma5 -mt4 -y >nul
        :: 清理临时文件和原RAR
        cd ..
        del "%%f"
        rd "!rar_name!_temp" /s /q
        :: 回到顶层临时工作目录
        cd "%~dp0!base_name!"
    )
    :: 存在未处理的RAR就继续循环
    if defined has_rar goto loop_convert_inner
    
    :: 所有内嵌文件处理完成后,打包整个目录为新的顶层RAR
    rar a "!base_name!.rar" -r -ma5 -mt4 -y >nul
    
    :: 归档原始文件、移动转换完成的文件
    move ..\"%%i" ..\Unconverted\ >nul
    move "!base_name!.rar" ..\converted\ >nul
    cd ..
    rd "!base_name!" /s /q
    echo 处理完成:"%%i"
)

echo 全部RAR转换任务执行完毕
pause

使用注意事项

  • 使用前请将WinRAR安装路径添加到系统环境变量PATH中,保证rar命令可以全局调用
  • 脚本执行前会自动创建Unconverted(存放原始RAR备份)和converted(存放转换后RAR)两个目录
  • 如需终止执行,只需在z:\temp目录下新建名为stop的空文件,脚本处理完当前文件后就会自动退出
  • 脚本默认使用普通压缩率的WinRAR5格式,需要调整压缩等级可在rar a命令后添加-m<1-5>参数,-m5为最高压缩率
  • 处理分卷RAR时会自动合并为单文件,若需保留分卷结构,可将打包命令替换为WinRAR分卷压缩参数,如-v100m为100MB分卷

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:54:03