bat批量解压缩各文件至指定目录

2024-12-04 20:15:40
推荐回答(1个)
回答(1):

@echo off & title 批量解压并分类文件 By 依梦琴瑶
cd /d %~dp0

set WinRarDir=%ProgramFiles%\WinRAR

set Path=%Path%;%WinRarDir%

if exist "%~dp0UnDecompressionCache" rd /s /q "%~dp0UnDecompressionCache"
for %%a in (*.rar) do (
    call :UnDecompression "%%~a"
)
echo OK
pause
exit

:UnDecompression
md "%~dp0UnDecompressionCache"
WinRAR x -ad -y "%~s1" * "%~dp0UnDecompressionCache" -ibck >nul 2>nul
for /r "%~dp0UnDecompressionCache" %%i in (*) do (
    call :Classification "%%~i" "%~nx1"
)
rd /s /q "%~dp0UnDecompressionCache"
goto :eof

:Classification
set DirName=%~x1
if not exist "%~dp0%DirName:~1%" md "%~dp0%DirName:~1%"
set "YMDHMS=%date:~,4%%date:~5,2%%date:~8,2%%time:~,2%%time:~3,2%%time:~6,2%"
set "YMDHMS=%YMDHMS: =0%"
if exist "%~dp0%DirName:~1%\%~nx1" (
    move "%~1" "%~dp0%DirName:~1%\%~n1_(%~2_%YMDHMS%)%~x1"
) else (
    move "%~1" "%~dp0%DirName:~1%\"
)
goto :eof