คุณเขียนไฟล์ 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 ของคุณก็ได้
- กด Win + R พิมพ์
iexpressแล้วกด Enter - เลือก Create new Self Extraction Directive file แล้วคลิก Next
- เลือก Extract files and run an installation command
- ตั้งชื่อแพ็กเกจ (จะแสดงในแถบชื่อหน้าต่างของทุกข้อความ)
- Confirmation prompt: No prompt License agreement: Do not display a license
- Packaged files: คลิก Add แล้วเลือกไฟล์
.batของคุณ (และไฟล์อื่นที่จำเป็น) - Install Program: พิมพ์
cmd /c yourscript.batเองพร้อมชื่อไฟล์ของคุณ การเลือกแค่ .bat จากรายการมักไม่ได้ผล เพราะ IExpress ไม่เริ่มไฟล์ batch โดยตรง - Show window: Default เพื่อดูคอนโซล หรือ Hidden เพื่อรันแบบเงียบ
- Finished message: No message
- Package name: เลือกที่บันทึก EXE แล้วติ๊ก Hide File Extracting Progress Animation from User และ Store files using Long File Name inside Package
- 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 ขนาดเล็กที่รันสคริปต์นั้น และให้คุณตั้งค่าไอคอน เวอร์ชัน และเลือกว่าจะให้หน้าต่างคอนโซลปรากฏหรือไม่
- เปิด PowerShell (ไม่ต้องใช้สิทธิ์ผู้ดูแลระบบ) แล้วติดตั้งโมดูลครั้งเดียว:
ถ้า PowerShell ถามว่าจะติดตั้งผู้ให้บริการ NuGet หรือเชื่อถือคลัง PSGallery หรือไม่ ให้ตอบ Y.Install-Module ps2exe -Scope CurrentUser - ไปที่โฟลเดอร์ที่มีสคริปต์ของคุณแล้วสร้าง EXE:
Invoke-ps2exe .\script.ps1 .\script.exe - ตัวเลือกที่มีประโยชน์:
-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” ทุกตัวไม่บอกคุณ
- โค้ดของคุณไม่ได้ถูกซ่อน เครื่องมือเหล่านี้เก็บสคริปต์ไว้ใน EXE ซึ่งมักเป็นข้อความธรรมดา ใครก็อ่านกลับออกมาได้ เช่น ด้วย ตัวดึงสตริง ของเรา ซึ่งแสดงข้อความที่อ่านได้ในไฟล์ใดก็ได้ อย่าใส่รหัสผ่าน โทเค็น หรือคีย์ไว้ในนั้นเด็ดขาด
- โปรแกรมป้องกันไวรัสอาจแจ้งเตือน มัลแวร์ใช้ตัวห่อแบบเดียวกัน Windows Defender และ SmartScreen จึงอาจเตือนเกี่ยวกับ EXE ของสคริปต์ที่ไม่มีอันตรายเลย การเซ็นด้วยใบรับรอง code-signing ช่วยได้ และ Microsoft รับรายงานผลบวกลวงสำหรับไฟล์ที่คุณสร้างเอง
- EXE จากเว็บไซต์คือไฟล์ที่คุณตรวจสอบไม่ได้ ตัวแปลงออนไลน์ส่งไฟล์ที่สร้างบนเซิร์ฟเวอร์ที่คุณไม่รู้จักเลยกลับมา เราจึงอธิบายวิธีที่มีในตัวแทนการให้บริการตัวแปลง: ด้วย IExpress หรือ ps2exe คุณจะรู้แน่ชัดว่ามีอะไรอยู่ในไฟล์
ได้ EXE มาจากคนอื่นและอยากรู้ว่ามันรันอะไรก่อนเปิด? อ่าน วิธีวิเคราะห์ EXE โดยไม่ต้องรัน
เครื่องมือฟรีสำหรับงานที่เหลือ
ทั้งหมดทำงานในเบราว์เซอร์ของคุณ: ไฟล์ของคุณไม่ถูกอัปโหลดไปที่ใด