本帖最后由 77七 于 2023-8-24 14:36 编辑
4楼的代码,我这里测试是没问题的。
查看winrar帮助文件,利用退出码再写一个,正好也解决4楼反复解压覆盖的问题。- @echo off
- rem 批处理保存为ansi编码格式,仅测试rar.exe。
- rem 解压当前目录及子目录中的rar、zip文件(包括分卷),解压后删除源文件
- rem 兼容含特殊字符密码 (参考:http://www.bathome.net/redirect.php?goto=findpost&ptid=66456&pid=270314)
- del log.txt 2>nul
- for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip ^|sort') do (
- for /f "useback skip=27 delims=" %%a in ("%~f0") do (
- if exist "%%i" (
- set "file=%%i"
- set "pwd=%%a"
- setlocal enabledelayedexpansion
- set "pwd=!pwd:"=""!"
- rar x "!file!" -hp"!pwd!"
- if "!errorlevel!" equ "0" (
- del "!file!"
- ) else if "!errorlevel!" equ "6" (
- del "!file!"
- )
- endlocal
- )
- )
- if exist "%%i" (
- >>log.txt echo %%i
- )
- )
- pause & exit
- rem 以下存放密码
- 2
- 123
复制代码
|