Bạn đã viết một tệp batch hoặc script PowerShell chạy tốt, và giờ muốn gửi cho ai đó dưới dạng một tệp .exe duy nhất: một tệp để nhấp đúp, không có câu hỏi “mở bằng” và không có console đầy lệnh.
Bạn không cần “công cụ chuyển BAT sang EXE” trực tuyến cho việc đó. Windows đã có sẵn công cụ làm được việc này, và PowerShell có một module miễn phí, mã nguồn mở làm điều tương tự cho script .ps1. Cả hai đều chạy trên máy tính của bạn, nên tệp nhận được chỉ được tạo từ script của bạn.
Đang vội?
- Tệp batch (.bat / .cmd): nhấn Win + R, gõ
iexpress, rồi đóng gói tệp với lệnh cài đặtcmd /c yourscript.bat. - PowerShell (.ps1): chạy
Install-Module ps2exe -Scope CurrentUsermột lần, sau đóInvoke-ps2exe .\script.ps1 .\script.exe. - Python (.py):
pip install pyinstaller, sau đópyinstaller --onefile script.py. - Muốn có biểu tượng? Lấy từ bất kỳ chương trình nào bằng Trích xuất biểu tượng miễn phí.
Cách 1: BAT sang EXE với IExpress (có sẵn trong Windows)
IExpress đã là một phần của Windows hàng chục năm. Nó được tạo ra để xây dựng các trình cài đặt nhỏ: đóng gói tệp thành một EXE, giải nén chúng vào thư mục tạm khi EXE chạy, rồi khởi chạy một lệnh. Lệnh đó có thể là tệp batch của bạn.
- Nhấn Win + R, gõ
iexpressvà nhấn Enter. - Chọn Create new Self Extraction Directive file và nhấp Next.
- Chọn Extract files and run an installation command.
- Đặt tiêu đề cho gói (hiển thị trên thanh tiêu đề của mọi thông báo).
- Confirmation prompt: No prompt. License agreement: Do not display a license.
- Packaged files: nhấp Add và chọn tệp
.batcủa bạn (cùng các tệp nó cần). - Install Program: tự gõ
cmd /c yourscript.bat, kèm tên tệp của bạn. Chỉ chọn tệp .bat từ danh sách thường không có tác dụng, vì IExpress không khởi chạy trực tiếp tệp batch. - Show window: Default để thấy console, hoặc Hidden để chạy ẩn.
- Finished message: No message.
- Package name: chọn nơi lưu EXE, và đánh dấu Hide File Extracting Progress Animation from User và Store files using Long File Name inside Package.
- Restart: No restart. Lưu tệp SED nếu muốn tạo lại sau này, rồi nhấp Next để tạo EXE.
Một điều cần biết: script chạy từ một thư mục tạm, không phải từ nơi đặt EXE. Một dòng như copy data.txt backup\ sẽ tìm trong thư mục tạm đó. Hãy dùng đường dẫn đầy đủ (%USERPROFILE%\Documents\data.txt) cho các tệp script đọc hoặc ghi bên ngoài gói.
Cách 2: PowerShell sang EXE với ps2exe
ps2exe là module PowerShell miễn phí, mã nguồn mở, được phát hành trên PowerShell Gallery chính thức. Nó bọc script .ps1 trong một EXE nhỏ để chạy script, và cho phép đặt biểu tượng, phiên bản và chọn có hiện cửa sổ console hay không.
- Mở PowerShell (không cần quyền quản trị) và cài module một lần:
Nếu PowerShell hỏi cài đặt nhà cung cấp NuGet hoặc tin cậy kho PSGallery, hãy trả lời Y.Install-Module ps2exe -Scope CurrentUser - Đi tới thư mục chứa script và tạo EXE:
Invoke-ps2exe .\script.ps1 .\script.exe - Tùy chọn hữu ích:
-noConsole: không có cửa sổ console (cho script hiển thị biểu mẫu hoặc hộp thông báo).-iconFile .\app.ico: biểu tượng của EXE.-requireAdmin: yêu cầu quyền quản trị khi khởi động.-title "My Tool" -version "1.0.0": thông tin Windows hiển thị trong thuộc tính của tệp.
Thích cửa sổ hơn dòng lệnh? Chạy Win-PS2EXE sau khi cài module: đó là cùng công cụ với một biểu mẫu nhỏ.
Các script khác: Python, AutoHotkey, Node.js
- Python:
pyinstaller --onefile script.pytạo một EXE trong thư mụcdist. Thêm--noconsolecho chương trình có cửa sổ. - AutoHotkey: trình cài đặt có kèm Ahk2Exe: nhấp chuột phải vào tệp .ahk và chọn Compile Script.
- Node.js: các phiên bản mới (20 trở lên) có thể tạo ứng dụng thực thi đơn (xem trang “Single executable applications” trong tài liệu Node.js).
Bạn có thật sự cần EXE?
Thường thì một cách đơn giản hơn là đủ:
- Lối tắt. Nhấp chuột phải vào tệp .bat, chọn Send to → Desktop (create shortcut), rồi đặt biểu tượng cho lối tắt trong phần thuộc tính. Nhấp đúp vào nó để chạy script.
- Tác vụ theo lịch. Với script cần chạy hằng ngày hoặc khi đăng nhập, Task Scheduler chạy trực tiếp tệp .bat hoặc .ps1.
- Chính script đó. Nếu người nhận dùng Windows, tệp .bat vốn đã chạy khi nhấp đúp.
Ba điều mà mọi “công cụ chuyển BAT sang EXE” đều bỏ qua
- Mã của bạn không bị ẩn. Các công cụ này lưu script bên trong EXE, thường ở dạng văn bản thuần. Bất kỳ ai cũng có thể đọc lại, ví dụ bằng Trích xuất chuỗi của chúng tôi, công cụ liệt kê văn bản đọc được trong mọi tệp. Đừng bao giờ đặt mật khẩu, token hay khóa trong đó.
- Phần mềm diệt virus có thể cảnh báo. Mã độc dùng cùng loại trình đóng gói, nên Windows Defender và SmartScreen có thể cảnh báo một EXE script hoàn toàn vô hại. Ký bằng chứng chỉ ký mã sẽ giúp ích, và Microsoft nhận báo cáo dương tính giả cho tệp do bạn tạo.
- EXE từ một trang web là tệp bạn không thể kiểm tra. Công cụ chuyển đổi trực tuyến trả về một tệp được tạo trên máy chủ mà bạn không hề biết. Vì vậy chúng tôi hướng dẫn cách có sẵn thay vì cung cấp một công cụ: với IExpress hoặc ps2exe, bạn biết chính xác những gì nằm trong tệp.
Nhận được EXE từ người khác và muốn biết nó chạy gì trước khi mở? Hãy đọc cách phân tích EXE mà không cần chạy.
Công cụ miễn phí cho phần việc còn lại
Tất cả đều chạy trong trình duyệt: tệp của bạn không được tải lên đâu cả.