Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal enableExtensions
- rem :-----------------------------------------
- rem : check if should pront the help message
- rem :-----------------------------------------
- if "%~2" equ "" goto :help
- for %%H in (/h -h /help -help) do (
- if /I "%~1" equ "%%H" goto :help
- )
- if not exist "%~1" echo file does not exist & exit /b 1
- rem :-----------------------------------------
- rem : validate input
- rem :-----------------------------------------
- set /a size=%~2
- if not defined size echo something wrong with size parameter & exit /b 2
- if %size%0 equ 00 echo not a valid number passed as a parameter & exit /b 3
- rem : -- two hex symbols are 1 byte
- rem : -- so the sum of all hex symbols
- rem : -- per part should be doubled
- set /a len=%size%*2
- set "file=%~dfn1"
- for %%F in ("%file%") do set fn=%%~nxF
- rem : -- clear temp data
- del /F /Q "%temp%\file" >nul 2>&1
- del /F /Q "%temp%\fn.p.*" >nul 2>&1
- certutil -encodehex -f "%file%" "%temp%\file" >nul
- set "part=1"
- setlocal enableDelayedExpansion
- set "hex_str="
- set hex_len=0
- break>%temp%\fn.p.!part!
- rem : -- reads the hex encoded file
- rem : -- and make it on a parts that will
- rem : -- decoded with certutil
- for /f "usebackq tokens=2 delims= " %%A in ("%temp%\file") do (
- set "line=%%A"
- for %%K in (!line:~0,48!) do (
- rem 8192
- if !hex_len! EQU 7000 (
- echo !hex_str!>>%temp%\fn.p.!part!
- set "hex_str="
- set hex_len=0
- set /a len=!len!-7000
- )
- if !hex_len! LSS !len! (
- set "hex_str=!hex_str!%%K"
- set /a hex_len=hex_len+2
- ) else (
- echo !hex_str!>>%temp%\fn.p.!part!
- certutil -decodehex -f %temp%\fn.p.!part! %fn%.part.!part! >nul
- echo -- !part!th part created --
- set hex_str=%%K
- set hex_len=2
- set /a part=part+1
- break>%temp%\fn.p.!part!
- set /a len=%size%*2
- )
- )
- )
- echo !hex_str!>>%temp%\fn.p.!part!
- certutil -decodehex -f %temp%\fn.p.!part! %fn%.part.!part! >nul
- echo -- !part!nt part created --
- del /F /Q %temp%\fn.p.* >nul 2>&1
- del /F /Q %temp%\file >nul 2>&1
- endlocal
- endlocal
- goto :eof
- rem :-----------------------------------------
- rem : help message
- rem :-----------------------------------------
- :help
- echo\
- echo Splits a file on parts by given size
- echo\
- echo\
- echo %0 file size
- echo\
- echo\
- echo by Vasil "npocmaka" Arnaudov
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement