If-Koubou

Konversi Script Batch (BAT) ke file Executable (EXE)

Konversi Script Batch (BAT) ke file Executable (EXE) (Bagaimana caranya)

Ketika Anda mendapatkannya, file batch dan file yang dapat dieksekusi bekerja cukup banyak dengan cara yang sama. Keduanya hanyalah seperangkat instruksi dan logika untuk mengeksekusi Windows. Jadi mengapa Anda ingin mengkonversi file batch menjadi executable jika mereka pada dasarnya bekerja sama? Berikut beberapa alasannya:

  • Portabilitas - Anda dapat menyertakan alat tambahan dalam file EXE Anda tempat file batch bergantung.
  • Perlindungan - EXE memberikan perlindungan untuk skrip sumber Anda untuk memastikannya tidak dimodifikasi secara tidak sengaja.
  • Kenyamanan - File yang dapat dieksekusi dapat disematkan ke Windows Start Menu dan / atau Windows 7 Task Bar.

Dengan skrip di bawah ini, Anda dapat dengan mudah membuat file yang dapat dieksekusi sendiri dari file batch, lengkap dengan dan memerlukan alat yang disematkan.

Konfigurasi

Skrip ini memanfaatkan SFX canggih 7-Zip (SelF eXtractor) untuk menggabungkan dan menjalankan file batch dengan alat apa pun yang disertakan. Jadi Anda perlu mengunduh (tautan yang disediakan di bagian akhir) ini dan mengekstraknya ke satu direktori.

Setelah Anda mengunduh semuanya, setel variabel 'PathTo7Zip' di skrip ke lokasi tempat file-file ini diunduh.

Naskah

@ECHO OFF ECHO Membuat EXE Dari BAT ECHO Ditulis oleh: Jason Faulkner ECHO SysadminGeek.com ECHO. GEMA. REM Penggunaan: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Diperlukan Parameter: REM BatFileToConvert REM Sumber file batch yang digunakan untuk menghasilkan output Exe file. REM REM Opsional Parameter: REM IncludeFile REM file tambahan untuk dimasukkan dalam file Exe. REM Anda dapat menyertakan alat eksternal yang digunakan oleh file batch sehingga mereka tersedia di mesin eksekusi. SETLOCAL REM Configuration (tidak diperlukan tanda kutip): SET PathTo7Zip = REM ---- Jangan modifikasi apa pun 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 ada IF EXIST% OutputFile% DEL% OutputFile% REM Membangun 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 konfigurasi 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 BUKA% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % JIKA ADA% Sumber7ZFile% DEL% Source7ZFile% ENDLOCAL

Kesimpulan

Penting untuk dicatat bahwa sementara 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 dimaksudkan untuk digunakan untuk installer yang melakukan self-extracting. Ketika Anda mengeksekusi file EXE yang dihasilkan, prosesnya berjalan seperti ini:

  1. Isi file EXE diekstrak ke direktori temp.
  2. File konfigurasi yang dihasilkan oleh skrip dibaca.
  3. File batch yang terdapat dalam file EXE dieksekusi di jendela perintah baru.
  4. 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 depan untuk file ini.

Karena file EXE diluncurkan di jendela baru, cara umum untuk mencatat output (menggunakan char '>') tidak akan berfungsi seperti yang diharapkan. Untuk mencatat output, Anda harus menangani ini secara asli di skrip sumber Anda.

Meskipun ketidaknyamanan kecil ini, mampu mengkonversi file batch ke eksekusi dapat 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