Trang chủ » làm thế nào để » Chuyển đổi tập lệnh Batch (BAT) thành tập tin thực thi (EXE)

    Chuyển đổi tập lệnh Batch (BAT) thành tập tin thực thi (EXE)

    Khi bạn truy cập vào nó, các tệp bó và tệp thực thi hoạt động khá giống nhau. Cả hai chỉ đơn giản là một bộ hướng dẫn và logic để thực thi Windows. Vậy tại sao bạn muốn chuyển đổi một tệp bó thành tệp thực thi nếu về cơ bản chúng hoạt động giống nhau? Dưới đây là một vài lý do:

    • Tính di động - bạn có thể bao gồm các công cụ bổ sung trong tệp EXE của mình mà tệp bó phụ thuộc vào.
    • Bảo vệ - EXE cung cấp bảo vệ cho tập lệnh nguồn của bạn để đảm bảo nó không bị sửa đổi vô tình.
    • Thuận tiện - Các tệp có thể thực thi có thể được ghim vào Menu Bắt đầu của Windows và / hoặc Thanh tác vụ Windows 7.

    Với tập lệnh bên dưới, bạn có thể dễ dàng xây dựng tệp thực thi của riêng mình từ tệp bó, hoàn thành với các công cụ nhúng được yêu cầu.

    Cấu hình

    Kịch bản lệnh này tận dụng SFX nâng cao 7-Zip (SelF eXtractor) để đóng gói và thực thi tệp bó với bất kỳ công cụ đi kèm nào. Vì vậy, bạn sẽ cần phải tải xuống (các liên kết được cung cấp ở cuối) những cái này và trích xuất chúng vào một thư mục duy nhất.

    Khi bạn đã tải xuống mọi thứ, hãy đặt biến 'PathTo7Zip' trong tập lệnh thành vị trí nơi các tệp này được tải xuống.

    Kịch bản

    @ECHO TẮT ECHO Tạo EXE từ BAT ECHO Viết bởi: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. Cách sử dụng REM: REM MakeExeFromBat BatFileToConvert [Bao gồmFile1] [Bao gồmFile2] [Liên kết] REM REM Các tham số bắt buộc: REM BatFileToConvert tệp tin nguồn REM để sử dụng để tạo tệp exe đầu ra. REM Thông số tùy chọn REM: REM Bao gồm tệp REM Các tệp bổ sung cần bao gồm trong tệp exe. REM Bạn có thể bao gồm các công cụ bên ngoài được sử dụng bởi tệp bó để chúng có sẵn trên máy thực thi. Cấu hình SETLOCAL REM (không cần trích dẫn): SET PathTo7Zip = REM ---- Không sửa đổi bất cứ điều gì bên dưới dòng này ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Cấu hình NẾU % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" ;! @ Cài đặt @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO ;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile %% OutputFile% REM Làm sạch IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% % NẾU EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

    Phần kết luận

    Điều quan trọng cần lưu ý là mặc dù tệp kết quả chạy chính xác giống như tệp BAT nguồn, đây không phải là một lô thực sự để chuyển đổi thực thi. Tệp kết quả là một EXE, tuy nhiên nó được dự định sẽ được sử dụng cho các trình cài đặt tự giải nén. Khi bạn thực thi tệp EXE kết quả, quá trình sẽ diễn ra như sau:

    1. Nội dung của tệp EXE được trích xuất vào thư mục tạm thời.
    2. Tệp cấu hình được tạo bởi tập lệnh được đọc.
    3. Tệp bó chứa trong tệp EXE được thực thi trong cửa sổ lệnh mới.
    4. Sau khi hoàn tất, các tệp tạm thời được xóa.

    Trên Windows Vista và hệ điều hành mới, bạn có thể thấy hộp thông báo sau sau khi tập lệnh được chạy. Sau khi chọn 'Chương trình này được cài đặt chính xác', hộp thông báo sẽ không được hiển thị trong tương lai cho tệp này.

    Vì tệp EXE khởi chạy trong một cửa sổ mới, cách ghi nhật ký đầu ra điển hình (sử dụng '>' char) sẽ không hoạt động như mong đợi. Để ghi nhật ký đầu ra, bạn cần xử lý nguyên bản này trong tập lệnh nguồn của mình.

    Mặc dù có những bất tiện nhỏ này, việc có thể chuyển đổi một tệp bó thành tệp thực thi có thể thực sự hữu ích.

    Liên kết

    Tải xuống Make EXE từ BAT Script từ Sysadmin Geek

    Tải xuống Công cụ dòng lệnh 7-Zip

    Tải xuống SFX 7-Zip nâng cao