递归解压当前目录以及子目录下的所有压缩文件,并删除源文件

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