คุณเขียนไฟล์ batch หรือสคริปต์ PowerShell ที่ใช้งานได้ และตอนนี้อยากส่งให้คนอื่นเป็นไฟล์ .exe ไฟล์เดียว: ไฟล์เดียวให้ดับเบิลคลิก ไม่มีคำถาม “เปิดด้วย” และไม่มีคอนโซลที่เต็มไปด้วยคำสั่ง

คุณไม่จำเป็นต้องใช้ “ตัวแปลง BAT เป็น EXE” ออนไลน์สำหรับงานนี้ Windows มีเครื่องมือที่ทำได้อยู่แล้ว และ PowerShell มีโมดูลฟรีแบบโอเพนซอร์สที่ทำแบบเดียวกันสำหรับสคริปต์ .ps1 ทั้งสองทำงานบนคอมพิวเตอร์ของคุณเอง ไฟล์ที่ได้จึงสร้างจากสคริปต์ของคุณเท่านั้น

รีบอยู่ใช่ไหม?

  • ไฟล์ batch (.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: BAT เป็น EXE ด้วย IExpress (มีในตัว Windows)

IExpress เป็นส่วนหนึ่งของ Windows มาหลายสิบปี สร้างขึ้นมาเพื่อทำตัวติดตั้งขนาดเล็ก: แพ็กไฟล์ลงใน EXE ไฟล์เดียว แตกไฟล์ไปยังโฟลเดอร์ชั่วคราวเมื่อ EXE ทำงาน แล้วเริ่มคำสั่งหนึ่ง คำสั่งนั้นอาจเป็นไฟล์ batch ของคุณก็ได้

  1. กด Win + R พิมพ์ iexpress แล้วกด Enter
  2. เลือก Create new Self Extraction Directive file แล้วคลิก Next
  3. เลือก Extract files and run an installation command
  4. ตั้งชื่อแพ็กเกจ (จะแสดงในแถบชื่อหน้าต่างของทุกข้อความ)
  5. Confirmation prompt: No prompt License agreement: Do not display a license
  6. Packaged files: คลิก Add แล้วเลือกไฟล์ .bat ของคุณ (และไฟล์อื่นที่จำเป็น)
  7. Install Program: พิมพ์ cmd /c yourscript.bat เองพร้อมชื่อไฟล์ของคุณ การเลือกแค่ .bat จากรายการมักไม่ได้ผล เพราะ IExpress ไม่เริ่มไฟล์ batch โดยตรง
  8. Show window: Default เพื่อดูคอนโซล หรือ Hidden เพื่อรันแบบเงียบ
  9. Finished message: 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: PowerShell เป็น EXE ด้วย ps2exe

ps2exe เป็นโมดูล PowerShell ฟรีแบบโอเพนซอร์ส เผยแพร่ใน PowerShell Gallery อย่างเป็นทางการ โมดูลนี้ห่อสคริปต์ .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 สร้าง EXE หนึ่งไฟล์ในโฟลเดอร์ dist เพิ่ม --noconsole สำหรับโปรแกรมที่มีหน้าต่าง
  • AutoHotkey: ตัวติดตั้งมี Ahk2Exe มาด้วย: คลิกขวาที่ไฟล์ .ahk แล้วเลือก Compile Script
  • Node.js: เวอร์ชันใหม่ (20 ขึ้นไป) สร้างแอปพลิเคชันไฟล์เดียวที่รันได้ (ดูหน้า “Single executable applications” ในเอกสาร Node.js)

คุณจำเป็นต้องใช้ EXE จริงหรือ?

บ่อยครั้งทางเลือกที่ง่ายกว่าก็เพียงพอ:

  • ทางลัด คลิกขวาที่ไฟล์ .bat เลือก Send to → Desktop (create shortcut) แล้วตั้งไอคอนให้ทางลัดในคุณสมบัติ ดับเบิลคลิกเพื่อรันสคริปต์
  • งานตามกำหนดเวลา สำหรับสคริปต์ที่ต้องรันทุกวันหรือเมื่อลงชื่อเข้าใช้ Task Scheduler จะรัน .bat หรือ .ps1 ได้โดยตรง
  • ตัวสคริปต์เอง ถ้าคนที่คุณแชร์ให้ใช้ Windows ไฟล์ .bat ก็รันได้ด้วยการดับเบิลคลิกอยู่แล้ว

สามสิ่งที่ “ตัวแปลง BAT เป็น EXE” ทุกตัวไม่บอกคุณ

  1. โค้ดของคุณไม่ได้ถูกซ่อน เครื่องมือเหล่านี้เก็บสคริปต์ไว้ใน EXE ซึ่งมักเป็นข้อความธรรมดา ใครก็อ่านกลับออกมาได้ เช่น ด้วย ตัวดึงสตริง ของเรา ซึ่งแสดงข้อความที่อ่านได้ในไฟล์ใดก็ได้ อย่าใส่รหัสผ่าน โทเค็น หรือคีย์ไว้ในนั้นเด็ดขาด
  2. โปรแกรมป้องกันไวรัสอาจแจ้งเตือน มัลแวร์ใช้ตัวห่อแบบเดียวกัน Windows Defender และ SmartScreen จึงอาจเตือนเกี่ยวกับ EXE ของสคริปต์ที่ไม่มีอันตรายเลย การเซ็นด้วยใบรับรอง code-signing ช่วยได้ และ Microsoft รับรายงานผลบวกลวงสำหรับไฟล์ที่คุณสร้างเอง
  3. EXE จากเว็บไซต์คือไฟล์ที่คุณตรวจสอบไม่ได้ ตัวแปลงออนไลน์ส่งไฟล์ที่สร้างบนเซิร์ฟเวอร์ที่คุณไม่รู้จักเลยกลับมา เราจึงอธิบายวิธีที่มีในตัวแทนการให้บริการตัวแปลง: ด้วย IExpress หรือ ps2exe คุณจะรู้แน่ชัดว่ามีอะไรอยู่ในไฟล์

ได้ EXE มาจากคนอื่นและอยากรู้ว่ามันรันอะไรก่อนเปิด? อ่าน วิธีวิเคราะห์ EXE โดยไม่ต้องรัน

เครื่องมือฟรีสำหรับงานที่เหลือ

ทั้งหมดทำงานในเบราว์เซอร์ของคุณ: ไฟล์ของคุณไม่ถูกอัปโหลดไปที่ใด

หาไอคอนให้ EXE ของคุณด้วย ตัวดึงไอคอน