@echo off setlocal ENABLEDELAYEDEXPANSION REM Print help screen if "%~4"=="" ( echo 7-Zip SFX Builder echo Usage: 7zSD.cmd ^ ^ ^ ^ exit /b 1 ) REM Generate temp file names set "SEVENZIP_SFX_CFG=%TMP%\~7zSD%RANDOM%%RANDOM%.cf" set "SEVENZIP_SFX_ARC=%TMP%\~7zSD%RANDOM%%RANDOM%.7z" REM Create the configuration file echo ;^^!@Install@^^!UTF-8^^!> "%SEVENZIP_SFX_CFG%" echo Title="%~3">> "%SEVENZIP_SFX_CFG%" echo ExecuteFile="%~n4.exe">> "%SEVENZIP_SFX_CFG%" echo ;^^!@InstallEnd@^^!>> "%SEVENZIP_SFX_CFG%" REM Create the 7-Zip archive "%~dp0\7za.exe" a -t7z "%SEVENZIP_SFX_ARC%" "%~1" if %ERRORLEVEL% NEQ 0 ( del "%SEVENZIP_SFX_CFG%" del "%SEVENZIP_SFX_ARC%" exit /b 1 ) REM Rename the embedded file "%~dp0\7za.exe" rn "%SEVENZIP_SFX_ARC%" "%~nx1" "%~n4.exe" if %ERRORLEVEL% NEQ 0 ( del "%SEVENZIP_SFX_CFG%" del "%SEVENZIP_SFX_ARC%" exit /b 1 ) REM Actually build the SFX file copy /b "%~dp0\7zSD.sfx" + "%SEVENZIP_SFX_CFG%" + "%SEVENZIP_SFX_ARC%" "%~2" if %ERRORLEVEL% NEQ 0 ( del "%SEVENZIP_SFX_CFG%" del "%SEVENZIP_SFX_ARC%" exit /b 1 ) REM Final clean-up del "%SEVENZIP_SFX_CFG%" del "%SEVENZIP_SFX_ARC%" exit /b 0