728x90
github에 공개된 내용입니다.
https://github.com/npocmaka/batch.scripts/blob/master/hybrids/iexpress/bat2exeIEXP.bat
아래 내용을 긁어 메모장에 옮긴 뒤 .bat 파일로 저장합니다.
;@echo off ; rem https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat ;if "%~2" equ "" ( ; echo usage: %~nx0 batFile.bat target.Exe ;) ;set "target.exe=%__cd__%%~2" ;set "batch_file=%~f1" ;set "bat_name=%~nx1" ;set "bat_dir=%~dp1" ;copy /y "%~f0" "%temp%\2exe.sed" >nul ;(echo()>>"%temp%\2exe.sed" ;(echo(AppLaunched=cmd.exe /c "%bat_name%")>>"%temp%\2exe.sed" ;(echo(TargetName=%target.exe%)>>"%temp%\2exe.sed" ;(echo(FILE0="%bat_name%")>>"%temp%\2exe.sed" ;(echo([SourceFiles])>>"%temp%\2exe.sed" ;(echo(SourceFiles0=%bat_dir%)>>"%temp%\2exe.sed" ;(echo([SourceFiles0])>>"%temp%\2exe.sed" ;(echo(%%FILE0%%=)>>"%temp%\2exe.sed" ;iexpress /n /q /m %temp%\2exe.sed ;rem del /q /f "%temp%\2exe.sed" ; exit /b 0 [Version] Class=IEXPRESS SEDVersion=3 [Options] PackagePurpose=InstallApp ShowInstallProgramWindow=0 HideExtractAnimation=1 UseLongFileName=1 InsideCompressed=0 CAB_FixedSize=0 CAB_ResvCodeSigning=0 RebootMode=N InstallPrompt=%InstallPrompt% DisplayLicense=%DisplayLicense% FinishMessage=%FinishMessage% TargetName=%TargetName% FriendlyName=%FriendlyName% AppLaunched=%AppLaunched% PostInstallCmd=%PostInstallCmd% AdminQuietInstCmd=%AdminQuietInstCmd% UserQuietInstCmd=%UserQuietInstCmd% SourceFiles=SourceFiles [Strings] InstallPrompt= DisplayLicense= FinishMessage= FriendlyName=- PostInstallCmd=<None> AdminQuietInstCmd= UserQuietInstCmd= ; |
변환 순서 (예. BATtoEXE.bat 로 저장 함)
1. 변환 할 파일(예. ABCDEFG.bat)을 BATtoEXE.bat 와 같은 폴더에 둔다
2. cmd 창을 열어 BATtoEXE.bat 가 저장된 폴더로 이동한다.
3. 다음과 같은 명령어로 변환 할 수 있다
BATtoEXE.bat ABCDEFG.bat ABCDEFG.exe
해본 바로는 파일 이름을 가리는 경향이 큽니다.
변환이 잘 안된다면 파일 이름을 변경하여 실행하면 잘 변환됩니다. (setup.bat 변환 됨)
경로에 띄어쓰기나 한글이 있다면 변환 혹은 실행에 오류가 있는 경우도 발생됩니다.
배치 파일 내 한글은 작동하지 않습니다. ("echo 안녕하세요" 이런거)
아래는 chatGPT를 이용해 코드를 줄여보았는데 테스트는... 안해봤습니다.
맥북 사용중이라 -_-a
@echo off ;if "%~2" equ "" ( ; echo usage: %~nx0 batFile.bat target.Exe ;) set "target.exe=%__cd__%%~2" set "batch_file=%~f1" set "bat_name=%~nx1" set "bat_dir=%~dp1" copy /y "%~f0" "%temp%\2exe.sed" >nul (echo(AppLaunched=cmd.exe /c "%bat_name%" echo(TargetName=%target.exe% echo(FILE0="%bat_name%" echo([SourceFiles] echo(SourceFiles0=%bat_dir% echo([SourceFiles0] echo(%%FILE0%%= ))>>"%temp%\2exe.sed" iexpress /n /q /m %temp%\2exe.sed rem del /q /f "%temp%\2exe.sed" exit /b 0 |
@echo off if "%~2" equ "" ( echo usage: %~nx0 batFile.bat target.Exe exit /b 1 ) set "target.exe=%__cd__%%~2" set "batch_file=%~f1" set "bat_name=%~nx1" set "bat_dir=%~dp1" copy /y "%~f0" "%temp%\2exe.sed" >nul ( echo() echo(AppLaunched=cmd.exe /c "%bat_name%") echo(TargetName=%target.exe%) echo(FILE0="%bat_name%") echo([SourceFiles]) echo(SourceFiles0=%bat_dir%) echo([SourceFiles0]) echo(%%FILE0%%=) )>>"%temp%\2exe.sed" iexpress /n /q /m %temp%\2exe.sed rem del /q /f "%temp%\2exe.sed" exit /b 0 |
(주석 처리된 부분을 제거하고 명령 체인을 하나로 합치는 방법)
728x90