แปลงสคริปต์ 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 ที่ได้ผลลัพธ์กระบวนการจะเป็นดังนี้:
- เนื้อหาของไฟล์ EXE จะถูกแตกไปยังไดเรกทอรีชั่วคราว.
- อ่านไฟล์กำหนดค่าที่สร้างโดยสคริปต์.
- ไฟล์แบตช์ที่มีอยู่ในไฟล์ EXE จะถูกดำเนินการในหน้าต่างคำสั่งใหม่.
- เมื่อเสร็จแล้วไฟล์ชั่วคราวจะถูกลบออก.
ใน Windows Vista และระบบปฏิบัติการใหม่คุณอาจเห็นกล่องข้อความต่อไปนี้หลังจากสคริปต์ทำงาน หลังจากเลือก 'โปรแกรมนี้ติดตั้งอย่างถูกต้อง' กล่องข้อความจะไม่ปรากฏขึ้นในอนาคตสำหรับไฟล์นี้.
เนื่องจากไฟล์ EXE เปิดตัวในหน้าต่างใหม่วิธีการทั่วไปของการบันทึกผลลัพธ์ (โดยใช้ '>' char) จะไม่ทำงานอย่างที่คาดไว้ ในการบันทึกผลลัพธ์คุณจะต้องจัดการสิ่งนี้ในสคริปต์ต้นฉบับของคุณ.
แม้จะมีความไม่สะดวกเล็ก ๆ น้อย ๆ เหล่านี้ แต่ความสามารถในการแปลงไฟล์แบตช์เป็นไฟล์ที่เรียกใช้งานได้นั้นมีประโยชน์จริงๆ.
การเชื่อมโยง
ดาวน์โหลด Make EXE จาก BAT Script จาก Sysadmin Geek
ดาวน์โหลดเครื่องมือบรรทัดคำสั่ง 7-Zip
ดาวน์โหลด 7-Zip Advanced 7zSD SFX