- 转载自:http://blog.csdn.net/gflrlm/article/details/12804435
- @echo off
- setlocal enabledelayedexpansion
-
- echo 当前批处理路径是:
- echo "%~dp0"
- cd /d "%~dp0"
-
-
- for /f "usebackq delims=" %%i in (`dir /a-d /b /s *.rar`) do (
- echo "%%i"
- set rar_path=%%~dpi
- echo "!rar_path!"
- REM 更改到rar所在目录,然后去掉该目录下所有rar文件的隐藏属性和只读属性。不然的话winrar无法处理。
- cd /d "!rar_path!"
- attrib -h -r "!rar_path!"* /s /d
- REM 使用下面的命令时,请自行查找winrar的帮助文档,以免解压后会直接覆盖已有的文件。
- "C:\Program Files\WinRAR\WinRAR.exe" x -r -inul -y "!rar_path!\*.rar" * -o-
-
- del "!rar_path!\*.rar"
-
- )
-
- rem winrar命令行模式下,不能自动处理隐藏文件,不会对其解压,对于只读的压缩文件会提示拒绝访问,所以必须用attrib命令去掉-h -r 属性。
- rem 上面的attrib命令,后面必须跟一个星号*,否则attrib命令会提示:“找不到文件 - C:\Users\lm\CMB\PB40\”