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

如何在Bat文件中用Unrar提取超260字符路径的RAR压缩包?

解决长路径RAR压缩包的Bat解压方案

我来帮你搞定这个问题——你遇到的核心就是Windows传统的260字符路径长度限制,右键解压能成功是因为现代资源管理器已经适配了长路径支持,但unrar.exe默认没遵循这个规则。下面给你具体的Bat脚本实现方案:

一、先确保系统支持长路径

这是前提,不然再好的脚本也没法正常工作:

  • Windows 10 1607+/Windows 11专业版/企业版:
    1. 按下Win+R输入gpedit.msc打开组策略编辑器
    2. 导航到计算机配置 > 管理模板 > 系统 > 文件系统 > 启用 Win32 长路径
    3. 设置为已启用,重启电脑生效
  • Windows家庭版(无组策略):
    1. 按下Win+R输入regedit.exe打开注册表编辑器
    2. 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    3. 修改LongPathsEnabled的值为1(DWORD类型),重启生效

二、Bat脚本的两种实现方式

方法1:用\\?\前缀绕过路径限制

Windows的\\?\前缀可以直接突破260字符路径限制,把压缩包和目标路径加上这个前缀传给unrar.exe即可:

@echo off
setlocal enabledelayedexpansion

:: 替换成你的RAR压缩包路径,记得用双引号括起来
set "RAR_PATH=C:\This\Is\A\Super\Long\Path\To\Your\Archive\File.rar"
:: 解压目标路径,留"."就是当前目录,也可以指定长路径
set "DEST_PATH=."

:: 给路径加上\\?\前缀,去掉原路径的双引号避免冲突
set "LONG_RAR_PATH=\\?\%RAR_PATH:"=%"
set "LONG_DEST_PATH=\\?\%DEST_PATH:"=%"

:: 调用unrar解压:x是保留目录结构,-y是自动确认覆盖
unrar x -y "%LONG_RAR_PATH%" "%LONG_DEST_PATH%"

echo 解压完成!
pause

方法2:用-ep3参数简化路径

如果不想折腾长路径前缀,也可以用-ep3参数——它会忽略压缩包内的路径前缀,直接把所有文件平铺到目标目录,避免路径叠加后超长:

@echo off
setlocal

:: 替换成你的压缩包和目标路径
set "RAR_PATH=C:\This\Is\A\Super\Long\Path\To\Your\Archive\File.rar"
set "DEST_PATH=C:\Your\Target\Long\Path"

:: -ep3忽略压缩包内的路径前缀,-y自动确认覆盖
unrar x -y -ep3 "%RAR_PATH%" "%DEST_PATH%"

echo 解压完成!
pause

三、几个关键注意事项

  • 确保unrar.exe在系统PATH里,或者和Bat脚本放在同一目录,也可以在脚本里写全路径(比如"C:\Program Files\WinRAR\unrar.exe")
  • 路径里有空格的话,一定要用双引号括起来,避免脚本解析出错
  • 测试时可以加一行echo %LONG_RAR_PATH%,确认长路径前缀加对了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:23:54