Код:
Echo off
Set Name=%~n0
Set Dir=%~dp0
rem Set DirR=%Dir%
Set DirR=C:\
echo echo off >"%Tmp%\~%Name%.bat"
echo "C:\Program Files\Winrar\Winrar.exe" M -r -ep1 -sfx "%DirR%%Name%.exe" "%Dir%" >>"%Tmp%\~%Name%.bat"
Echo Echo ---------------------------------------------------------- >>"%Tmp%\~%Name%.bat"
echo if exist "%DirR%%Name%.exe" ( >>"%Tmp%\~%Name%.bat"
echo Echo Создан архив "%DirR%%Name%.exe" >>"%Tmp%\~%Name%.bat"
echo ) Else ( >>"%Tmp%\~%Name%.bat"
echo Echo !!!! Архив создать не удалось "%DirR%%Name%.exe" >>"%Tmp%\~%Name%.bat"
echo ) >>"%Tmp%\~%Name%.bat"
Echo Echo ---------------------------------------------------------- >>"%Tmp%\~%Name%.bat"
echo Pause >>"%Tmp%\~%Name%.bat"
Start "CMD" CMD /c "%Tmp%\~%Name%.bat"
Смысл всей возни - батник генерирует новый батник в папке для врменных файлов, оттуда его затем запускает. При этом Start упаковщику не нужен вовсе, пока упаковщик не отработает, батник далее исполняться не будет. Недостающие на ваш взгляд ключи для упаковщика припишите самии (коментарии-иконки). Мелкая неприятность - в папке %Tmp% остаётся батник. Но я, например, перед завершением работы эту папку чищу, а, во вторых, несколько байт погоды не делают.
Если батник запускается из разных папок, чтобы эти служебные батники не размножались, вместо имени "%Tmp%\~%Name%.bat" придумать какое-то постоянное, например,
"%Tmp%\~kuku.bat"