제대로 작동하는 배치 파일이나 PowerShell 스크립트를 만들었고, 이제 하나의 .exe로 다른 사람에게 건네고 싶습니다. 더블클릭 한 번이면 되는 파일, “연결 프로그램” 질문도 명령으로 가득한 콘솔도 없이요.

이를 위해 온라인 “BAT to EXE 변환기”는 필요 없습니다. Windows에는 이미 이 작업을 하는 도구가 있고, PowerShell에는 .ps1 스크립트에 같은 일을 해 주는 무료 오픈 모듈이 있습니다. 둘 다 내 컴퓨터에서 실행되므로, 결과 파일은 오직 여러분의 스크립트로만 만들어집니다.

바쁘신가요?

  • 배치 파일(.bat / .cmd): Win + R를 누르고 iexpress를 입력한 다음, 설치 명령 cmd /c yourscript.bat로 파일을 패키징하세요.
  • PowerShell(.ps1): Install-Module ps2exe -Scope CurrentUser을 한 번 실행한 다음 Invoke-ps2exe .\script.ps1 .\script.exe를 실행하세요.
  • Python(.py): pip install pyinstaller, 그다음 pyinstaller --onefile script.py.
  • 아이콘이 필요하신가요? 무료 아이콘 추출기로 아무 프로그램에서나 가져오세요.

방법 1: IExpress로 BAT를 EXE로(Windows 기본 제공)

IExpress는 수십 년 전부터 Windows에 포함되어 있습니다. 작은 설치 프로그램을 만들기 위한 도구로, 파일을 하나의 EXE로 묶고 EXE가 실행되면 임시 폴더에 풀어 명령을 시작합니다. 그 명령이 여러분의 배치 파일이 될 수 있습니다.

  1. Win + R를 누르고 iexpress를 입력한 다음 Enter를 누르세요.
  2. Create new Self Extraction Directive file을 선택하고 Next를 클릭하세요.
  3. Extract files and run an installation command를 선택하세요.
  4. 패키지에 제목을 지정하세요(모든 메시지의 창 제목에 표시됩니다).
  5. 확인 메시지: No prompt. 사용권 계약: Do not display a license.
  6. Packaged files: Add를 클릭하고 .bat 파일(및 필요한 파일)을 선택하세요.
  7. Install Program: 파일 이름을 넣어 cmd /c yourscript.bat을 직접 입력하세요. 목록에서 .bat만 선택하면 아무 일도 일어나지 않는 경우가 많습니다. IExpress는 배치 파일을 직접 시작하지 않기 때문입니다.
  8. Show window: 콘솔을 보려면 Default, 조용히 실행하려면 Hidden.
  9. 완료 메시지: No message.
  10. Package name: EXE를 저장할 위치를 선택하고 Hide File Extracting Progress Animation from User와 Store files using Long File Name inside Package에 체크하세요.
  11. Restart: No restart. 나중에 다시 만들려면 SED 파일을 저장한 다음 Next를 클릭해 EXE를 만드세요.

알아 둘 점: 스크립트는 EXE가 있는 위치가 아니라 임시 폴더에서 실행됩니다. copy data.txt backup\ 같은 줄은 그 임시 폴더에서 찾습니다. 패키지 밖에서 읽거나 쓰는 파일에는 전체 경로(%USERPROFILE%\Documents\data.txt)를 사용하세요.

방법 2: ps2exe로 PowerShell을 EXE로

ps2exe는 공식 PowerShell Gallery에 게시된 무료 오픈 소스 PowerShell 모듈입니다. .ps1 스크립트를 그것을 실행하는 작은 EXE로 감싸며, 아이콘, 버전, 콘솔 창 표시 여부를 설정할 수 있습니다.

  1. PowerShell을 열고(관리자 권한 불필요) 모듈을 한 번 설치하세요:
    Install-Module ps2exe -Scope CurrentUser
    PowerShell이 NuGet 공급자를 설치할지 또는 PSGallery 리포지토리를 신뢰할지 물으면 다음과 같이 답하세요 Y.
  2. 스크립트가 있는 폴더로 이동해 EXE를 만드세요:
    Invoke-ps2exe .\script.ps1 .\script.exe
  3. 유용한 옵션:
    • -noConsole: 콘솔 창을 표시하지 않습니다(폼이나 메시지 상자를 표시하는 스크립트용).
    • -iconFile .\app.ico: EXE의 아이콘.
    • -requireAdmin: 시작할 때 관리자 권한을 요청합니다.
    • -title "My Tool" -version "1.0.0": Windows가 파일 속성에 표시하는 정보.

명령줄보다 창이 편하신가요? 모듈을 설치한 뒤 Win-PS2EXE를 실행하세요. 작은 폼이 있는 같은 도구입니다.

기타 스크립트: Python, AutoHotkey, Node.js

  • Python: pyinstaller --onefile script.py은 dist 폴더에 EXE 하나를 만듭니다. 창이 있는 프로그램에는 --noconsole를 추가하세요.
  • AutoHotkey: 설치 프로그램에 Ahk2Exe가 포함되어 있습니다. .ahk 파일을 마우스 오른쪽 버튼으로 클릭하고 Compile Script를 선택하세요.
  • Node.js: 최신 버전(20 이상)은 단일 실행 파일 애플리케이션을 만들 수 있습니다(Node.js 문서의 “Single executable applications” 페이지 참고).

정말 EXE가 필요한가요?

더 간단한 방법으로 충분한 경우가 많습니다:

  • 바로 가기. .bat 파일을 마우스 오른쪽 버튼으로 클릭하고 Send to → Desktop (create shortcut)(보내기 → 바탕 화면에 바로 가기 만들기)을 선택한 다음, 속성에서 바로 가기에 아이콘을 지정하세요. 더블클릭하면 스크립트가 실행됩니다.
  • 예약된 작업. 매일 또는 로그인할 때 실행해야 하는 스크립트라면 작업 스케줄러가 .bat나 .ps1을 직접 실행합니다.
  • 스크립트 그대로. 공유받는 사람이 Windows를 쓴다면 .bat 파일은 더블클릭만으로 이미 실행됩니다.

모든 “BAT to EXE 변환기”가 알려 주지 않는 세 가지

  1. 코드는 숨겨지지 않습니다. 이 도구들은 스크립트를 EXE 안에, 대개 일반 텍스트로 저장합니다. 누구나 다시 읽어 낼 수 있습니다. 예를 들어 저희 문자열 추출기는 어떤 파일이든 그 안의 읽을 수 있는 텍스트를 나열합니다. 비밀번호, 토큰, 키는 절대 넣지 마세요.
  2. 백신 프로그램이 경고할 수 있습니다. 악성 코드도 같은 래퍼를 사용하기 때문에 Windows Defender와 SmartScreen이 전혀 해롭지 않은 스크립트 EXE에 경고를 표시할 수 있습니다. 코드 서명 인증서로 서명하면 도움이 되고, Microsoft는 직접 만든 파일의 오탐 신고도 받습니다.
  3. 웹사이트에서 받은 EXE는 확인할 수 없는 파일입니다. 온라인 변환기는 여러분이 전혀 모르는 서버에서 만든 파일을 돌려줍니다. 그래서 변환기를 제공하는 대신 기본 제공 방법을 설명합니다. IExpress나 ps2exe를 쓰면 파일에 무엇이 들어갔는지 정확히 알 수 있습니다.

다른 사람에게 받은 EXE를 열기 전에 무엇을 실행하는지 알고 싶으신가요? EXE를 실행하지 않고 분석하는 방법을 읽어 보세요.

나머지 작업을 위한 무료 도구

모두 브라우저에서 실행되며, 파일은 어디에도 업로드되지 않습니다.

아이콘 추출기로 EXE용 아이콘 가져오기