- @echo off
- setlocal enabledelayedexpansion
- IF EXIST "%~2" goto:eof
- SET maxsize=0
- SET cursize=0
- SET prcomp=0
- IF NOT "%~3"=="" (SET level=%~3) ELSE (SET level=6)
- IF NOT "%~4"=="" (SET size=%~4) ELSE (SET size=128)
- IF NOT "%~5"=="" (SET threads=%~5) ELSE (SET threads=1)
- SET "level=%level:-l=%"
- IF /I %level% GTR 9 SET level=6
- IF /I %level% LSS 1 SET level=6
- SET "size=%size:-s=%"
- IF /I %size% LSS 1 SET size=128
- SET "threads=%threads:-t=%"
- IF "%threads%"=="0" SET threads=%NUMBER_OF_PROCESSORS%
- IF "%threads%"=="" (SET threads=1)
- IF "%threads%"=="3" (SET threads=2)
- IF "%threads%"=="5" (SET threads=4)
- IF "%threads%"=="7" (SET threads=6)
- IF /I %threads% GTR 8 (SET threads=8)
- ECHO %level% > .l%level%
- ECHO Recompressing file with reflate
- rawdet "%~1" .out .str > NUL
- FOR %%F IN (*.raw) DO (IF /I %%~zF GTR %size% (SET /A maxsize+=1))
- IF %threads%==1 (
- FOR %%F IN (*.raw) DO (
- IF /I %%~zF GTR %size% (
- raw2hif c%level% "%%~F" "%%~F.unp" "%%~F.hif"
- DEL /Q "%%~F"
- SET /A cursize+=1
- SET /A prcomp=!cursize!*100/%maxsize%
- IF /I !prcomp! GTR 100 SET prcomp=100
- CLS
- ECHO.Processing extracted deflate streams: !prcomp!%% complete
- ECHO.raw2hif: %%~nF [%%~zF bytes]
- TITLE !prcomp!%%
- )
- )
- goto:cleanup
- ) ELSE (
- IF %threads%==2 (
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*0.raw *2.raw *4.raw *6.raw *8.raw *A.raw *C.raw *E.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*1.raw *3.raw *5.raw *7.raw *9.raw *B.raw *D.raw *F.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- ) ELSE (
- IF %threads%==4 (
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*0.raw *1.raw *2.raw *3.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*4.raw *5.raw *6.raw *7.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*8.raw *9.raw *A.raw *B.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*C.raw *D.raw *E.raw *F.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- ) ELSE (
- IF %threads%==6 (
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*0.raw *6.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*1.raw *7.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*2.raw *8.raw *C.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*3.raw *9.raw *D.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*4.raw *A.raw *E.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*5.raw *B.raw *F.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- ) ELSE (
- IF %threads%==8 (
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*0.raw *8.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*1.raw *9.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*2.raw *A.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*3.raw *B.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*4.raw *C.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*5.raw *D.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*6.raw *E.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- START /MIN /BELOWNORMAL cmd /Q /C FOR %%F IN ^(*7.raw *F.raw^) DO ^(IF /I %%~zF GTR %size% ^(ECHO.raw2hif: %%~nF [%%~zF bytes] ^& raw2hif c%level% "%%~nxF" "%%~nF.unp" "%%~nF.hif" ^&^& DEL /Q "%%~F"^)^)
- )))))
- :wait
- SET cursize=0
- FOR %%F IN (*.raw) DO (IF /I %%~zF GTR %size% SET /A cursize+=1)
- IF NOT !cursize!==0 (
- SET /A waittime=!cursize!/100
- IF /I !waittime! LSS 3 SET waittime=3
- SET /A cursize=%maxsize%-!cursize!
- SET /A prcomp=!cursize!*100/%maxsize%
- IF /I !prcomp! GTR 100 SET prcomp=100
- REM CLS
- ECHO.Processing extracted deflate streams: !prcomp!%% complete
- TITLE !prcomp!%%
- timeout /T !waittime! /NOBREAK > NUL
- goto:wait
- )
- :cleanup
- FOR %%F IN (*.raw) DO (
- IF EXIST "%%~dpnF.hif" DEL /Q "%%~dpnF.raw"
- )
- arc.exe a -tzip -mx0 -ep1 -x"%~nx1" -- "%~nx2" *.* > NUL
- DEL /Q *.hif
- DEL /Q *.unp
- DEL /Q *.raw
- DEL /Q .l%level%
- DEL /Q .out
- DEL /Q .str
- goto:eof
reflate_c.cmd