/ / Convertiți un script de lot (BAT) într-un fișier executabil (EXE)

Convertiți un script de lot (BAT) într-un fișier executabil (EXE)

Când coborâți la acesta, lotificați fișiere șifișierele executabile funcționează cam la fel. Ambele sunt pur și simplu un set de instrucțiuni și logică pentru executarea Windows. Deci, de ce ai vrea să convertești un fișier batch într-un executabil dacă funcționează în același fel? Iată câteva motive:

  • Portabilitate - puteți include instrumente suplimentare în fișierul dvs. EXE de care depinde fișierul lot.
  • Protecție - un EXE oferă protecție scriptului sursă pentru a vă asigura că nu este modificat din neatenție.
  • Convenabilitate - Fișierele executabile pot fi fixate în meniul Start Windows și / sau pe bara de activități Windows 7.

Cu scriptul de mai jos, puteți construi cu ușurință propriul fișier executabil dintr-un fișier de lot, completat și cu instrumentele încorporate necesare.

configurație

Acest script profită de un avansat 7-ZipSFX (SelF eXtractor) pentru a grupa și executa fișierul de lot cu orice instrumente incluse. Așadar, va trebui să descărcați (link-urile furnizate la final) și să le extrageți într-un singur director.

După ce ați descărcat totul, setați variabila „PathTo7Zip” din script la locația unde au fost descărcate aceste fișiere.

Scriptul

@ECHO OFF
ECHO Make EXE From BAT
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.
REM Usage:
REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM  BatFileToConvert
REM      Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM  IncludeFile
REM      Additional files to include in the Exe file.
REM      You can include external tools used by the batch file so they are available on the executing machine.
SETLOCAL
REM Configuration (no quotes needed):
SET PathTo7Zip=
REM ---- Do not modify anything below this line ----
SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"
REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%
REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%
REM Build config file
ECHO ;!@Install@!utf-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%
REM Build EXE
COPY /B "%PathTo7Zip%7zsd.sfx" + %Config% + %Source7ZFile% %OutputFile%
REM Clean up
IF EXIST %SourceFiles% DEL %SourceFiles%
IF EXIST %Config% DEL %Config%
IF EXIST %Source7ZFile% DEL %Source7ZFile%
ENDLOCAL

Concluzie

Este important de menționat că, în timp ce rezultăfișierul rulează exact la fel ca fișierul BAT sursă, acesta nu este un lot adevărat pentru conversia executabilă. Fișierul rezultat este un EXE, cu toate acestea este destinat să fie utilizat pentru instalatori de auto-extragere. Când executați fișierul EXE rezultat, procesul merge astfel:

  1. Conținutul fișierului EXE este extras din directorul temp.
  2. Fișierul de configurare generat de script este citit.
  3. Fișierul de lot conținut în fișierul EXE este executat într-o fereastră de comandă nouă.
  4. Odată terminat, fișierele temp sunt eliminate.

Pe Windows Vista și pe noul sistem de operare, puteți vedeaurmând caseta de mesaj după executarea scriptului. După selectarea „Acest program instalat corect”, căsuța de mesaje nu va fi afișată în viitor pentru acest fișier.

imagine

Deoarece fișierul EXE se lansează într-o fereastră nouă,modul obișnuit de înregistrare a ieșirii (utilizând „>” char) nu va funcționa așa cum era de așteptat. Pentru a înregistra ieșirea, va trebui să o gestionați în mod nativ în scriptul sursă.

În ciuda acestor inconveniente minore, faptul că este capabil să convertiți un fișier de lot într-un executabil poate fi foarte util.

Link-uri

Descărcați Make EXE din BAT Script din Sysadmin Geek

Descărcați instrumentul pentru linia de comandă 7-Zip

Descărcați 7-Zip Advanced 7zSD SFX