โฮมเพจ » ทำอย่างไร » แปลงสคริปต์ Batch (BAT) เป็นไฟล์ Executable (EXE)

    แปลงสคริปต์ Batch (BAT) เป็นไฟล์ Executable (EXE)

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

    • ความสามารถในการพกพา - คุณสามารถรวมเครื่องมือเพิ่มเติมในไฟล์ EXE ที่ไฟล์แบตช์ขึ้นอยู่กับ.
    • การป้องกัน - EXE ให้การป้องกันสำหรับซอร์สสคริปต์ของคุณเพื่อให้แน่ใจว่าไม่ได้มีการแก้ไขโดยไม่ได้ตั้งใจ.
    • ความสะดวกสบาย - ไฟล์ที่ปฏิบัติการได้สามารถถูกตรึงไว้ที่เมนู Start ของ Windows และ / หรือทาสก์บาร์ Windows 7.

    ด้วยสคริปต์ด้านล่างคุณสามารถสร้างไฟล์ปฏิบัติการของคุณเองจากไฟล์แบตช์พร้อมด้วยเครื่องมือฝังตัวที่จำเป็น.

    องค์ประกอบ

    สคริปต์นี้ใช้ประโยชน์จาก SFX ขั้นสูง 7-Zip (SelF eXtractor) เพื่อรวมและเรียกใช้แบตช์ไฟล์ด้วยเครื่องมือใด ๆ ที่มีให้ ดังนั้นคุณจะต้องดาวน์โหลด (ลิงก์ที่มีให้ในตอนท้าย) เหล่านี้และแยกไปยังไดเรกทอรีเดียว.

    เมื่อคุณดาวน์โหลดทุกอย่างเสร็จแล้วให้ตั้งค่าตัวแปร 'PathTo7Zip' ในสคริปต์เป็นตำแหน่งที่ไฟล์เหล่านี้ซึ่งดาวน์โหลดมา.

    สคริปต์

    @ECHO OFF ECHO ทำ EXE จาก BAT ECHO เขียนโดย: Jason Faulkner ECHO SysadminGeek.com ECHO ECHO การใช้งาน REM: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM พารามิเตอร์ที่จำเป็น: REM BatFileToConvert REM แบตช์ไฟล์แบตช์ REM ต้นทางเพื่อใช้สร้างไฟล์ exe เอาต์พุต REM REM พารามิเตอร์เสริม: REM IncludeFile REM ไฟล์เพิ่มเติมที่จะรวมในไฟล์ exe REM คุณสามารถรวมเครื่องมือภายนอกที่ใช้โดยไฟล์แบตช์เพื่อให้พร้อมใช้งานในเครื่องที่ดำเนินการ การกำหนดค่า REM SETLOCAL (ไม่ต้องใช้เครื่องหมายอัญประกาศ): SET PathTo7Zip = REM ---- อย่าแก้ไขอะไรด้านล่างบรรทัดนี้ ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM ลบไฟล์ที่มีอยู่ออกถ้ายังมี OutputFile อยู่% DEL% OutputFile% REM สร้างแหล่งเก็บถาวร ECHO "% ~ dpnx1">% SourceFiles%: AddInclude หาก % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM สร้างไฟล์กำหนดค่า ECHO ;! @ @ ติดตั้ง UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM สร้าง EXE คัดลอก / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM ล้างค่าถ้ามีอยู่% SourceFiles% DEL% แหล่งที่มา% DEL% แหล่งที่ตั้ง% DEL% % ถ้ามีอยู่% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

    ข้อสรุป

    สิ่งสำคัญคือให้สังเกตว่าในขณะที่ไฟล์ผลลัพธ์จะทำงานเหมือนกับไฟล์ BAT ต้นฉบับ แต่นี่ไม่ใช่แบทช์ที่แท้จริงสำหรับการแปลงไฟล์ที่เรียกใช้งานได้ ไฟล์ผลลัพธ์เป็น EXE อย่างไรก็ตามมีวัตถุประสงค์เพื่อใช้สำหรับตัวติดตั้งแบบขยายไฟล์เอง เมื่อคุณเรียกใช้งานไฟล์ EXE ที่ได้ผลลัพธ์กระบวนการจะเป็นดังนี้:

    1. เนื้อหาของไฟล์ EXE จะถูกแตกไปยังไดเรกทอรีชั่วคราว.
    2. อ่านไฟล์กำหนดค่าที่สร้างโดยสคริปต์.
    3. ไฟล์แบตช์ที่มีอยู่ในไฟล์ EXE จะถูกดำเนินการในหน้าต่างคำสั่งใหม่.
    4. เมื่อเสร็จแล้วไฟล์ชั่วคราวจะถูกลบออก.

    ใน Windows Vista และระบบปฏิบัติการใหม่คุณอาจเห็นกล่องข้อความต่อไปนี้หลังจากสคริปต์ทำงาน หลังจากเลือก 'โปรแกรมนี้ติดตั้งอย่างถูกต้อง' กล่องข้อความจะไม่ปรากฏขึ้นในอนาคตสำหรับไฟล์นี้.

    เนื่องจากไฟล์ EXE เปิดตัวในหน้าต่างใหม่วิธีการทั่วไปของการบันทึกผลลัพธ์ (โดยใช้ '>' char) จะไม่ทำงานอย่างที่คาดไว้ ในการบันทึกผลลัพธ์คุณจะต้องจัดการสิ่งนี้ในสคริปต์ต้นฉบับของคุณ.

    แม้จะมีความไม่สะดวกเล็ก ๆ น้อย ๆ เหล่านี้ แต่ความสามารถในการแปลงไฟล์แบตช์เป็นไฟล์ที่เรียกใช้งานได้นั้นมีประโยชน์จริงๆ.

    การเชื่อมโยง

    ดาวน์โหลด Make EXE จาก BAT Script จาก Sysadmin Geek

    ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง 7-Zip

    ดาวน์โหลด 7-Zip Advanced 7zSD SFX