728x90

github에 공개된 내용입니다. 

https://github.com/npocmaka/batch.scripts/blob/master/hybrids/iexpress/bat2exeIEXP.bat

 

GitHub - npocmaka/batch.scripts: batch script utils and examples by npocmaka -

batch script utils and examples by npocmaka - . Contribute to npocmaka/batch.scripts development by creating an account on GitHub.

github.com

아래 내용을 긁어 메모장에 옮긴 뒤 .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

+ Recent posts