Konversi Script Batch (BAT) ke File Executable (EXE)
Ketika Anda mulai melakukannya, file batch dan file yang dapat dieksekusi bekerja dengan cara yang hampir sama. Keduanya hanyalah serangkaian instruksi dan logika untuk dieksekusi Windows. Jadi mengapa Anda ingin mengonversi file batch menjadi file yang dapat dieksekusi jika mereka pada dasarnya bekerja sama? Berikut ini beberapa alasan:
- Portabilitas - Anda dapat memasukkan alat tambahan dalam file EXE Anda yang bergantung pada file batch.
- Perlindungan - EXE memberikan perlindungan untuk skrip sumber Anda untuk memastikannya tidak dimodifikasi secara tidak sengaja.
- Kenyamanan - File yang dapat dieksekusi dapat disematkan ke Menu Mulai Windows dan / atau Bilah Tugas Windows 7.
Dengan skrip di bawah ini, Anda dapat dengan mudah membuat file yang dapat dieksekusi sendiri dari file batch, lengkap dengan dan alat bantu yang diperlukan.
Konfigurasi
Script ini mengambil keuntungan dari SFX 7-Zip canggih (SelF eXtractor) untuk bundel dan mengeksekusi file batch dengan alat yang disertakan. Jadi Anda perlu mengunduh (tautan yang disediakan di bagian akhir) dan mengekstraknya ke satu direktori.
Setelah semuanya diunduh, atur variabel 'PathTo7Zip' dalam skrip ke lokasi tempat file-file ini diunduh.
Naskah
@ECHO OFF ECHO Hasilkan EXE Dari BAT ECHO Ditulis oleh: Jason Faulkner ECHO SysadminGeek.com ECHO. GEMA. Penggunaan REM: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Parameter yang Diperlukan: REM BatFileToConvert REM File batch sumber yang akan digunakan untuk menghasilkan file Exe output. REM REM Parameter Opsional: REM IncludeFile REM File tambahan untuk disertakan dalam file Exe. REM Anda dapat menyertakan alat eksternal yang digunakan oleh file batch sehingga tersedia di mesin yang menjalankan. Konfigurasi SETLOCAL REM (tidak perlu tanda kutip): SET PathTo7Zip = REM ---- Jangan modifikasi apapun di bawah baris ini ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Hapus file yang sudah ada JIKA ADA% OutputFile% DEL% OutputFile% REM Bangun arsip sumber ECHO "% ~ dpnx1">% SourceFiles%: AddInclude JIKA % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM% membangun file config ECHO ;! @ Instal @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Bersihkan JIKA ADA% SumberFile% DEL% SourceFiles% JIKA ADA% Config% DEL Config % JIKA ADA% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
Kesimpulan
Penting untuk dicatat bahwa walaupun file yang dihasilkan berjalan persis sama dengan file BAT sumber, ini bukan batch yang benar untuk konversi yang dapat dieksekusi. File yang dihasilkan adalah EXE, namun ini dimaksudkan untuk digunakan untuk installer yang mengekstraksi sendiri. Saat Anda mengeksekusi file EXE yang dihasilkan, prosesnya berlangsung seperti ini:
- Isi file EXE diekstraksi ke direktori temp.
- File konfigurasi yang dihasilkan oleh skrip dibaca.
- File batch yang terkandung dalam file EXE dijalankan di jendela perintah baru.
- Setelah selesai, file temp dihapus.
Pada Windows Vista dan OS baru, Anda dapat melihat kotak pesan berikut setelah skrip dijalankan. Setelah memilih 'Program ini diinstal dengan benar', kotak pesan tidak akan ditampilkan di masa mendatang untuk file ini.
Karena file EXE diluncurkan di jendela baru, cara khas untuk mencatat keluaran (menggunakan karakter '>') tidak akan berfungsi seperti yang diharapkan. Untuk mencatat output, Anda harus menangani ini secara asli di skrip sumber Anda.
Terlepas dari ketidaknyamanan kecil ini, mampu mengonversi file batch menjadi file yang dapat dieksekusi benar-benar berguna.
Tautan
Unduh Make EXE dari BAT Script dari Sysadmin Geek
Unduh Alat Baris Perintah 7-Zip
Unduh 7-Zip Advanced 7zSD SFX