30Aug

Previesť šaržu dávky( BAT) do spustiteľného súboru( EXE)

click fraud protection

Keď sa na to dostanete, dávkové súbory a spustiteľné súbory fungujú skoro rovnako. Obidva sú jednoducho inštrukciou a logikou pre spustenie systému Windows. Tak prečo by ste chceli konvertovať dávkový súbor na spustiteľný súbor, ak v podstate fungujú rovnako? Tu je niekoľko dôvodov:

  • Portability - môžete do súboru EXE zahrnúť ďalšie nástroje, od ktorých závisí dávkový súbor.
  • Ochrana - EXE poskytuje ochranu zdrojového skriptu, aby sa zabezpečilo, že nebude neúmyselne upravené.
  • Pohodlie - spustiteľné súbory môžu byť pripevnené k ponuke Štart systému Windows a / alebo na panel úloh systému Windows 7.

S nižšie uvedeným skriptom môžete ľahko vytvoriť vlastný spustiteľný súbor z dávkového súboru, ktorý obsahuje kompletné a vyžadované vložené nástroje. Konfigurácia

Tento skript využíva pokročilý SFX 7-Zip( SelF eXtractor) na zväzovanie a spúšťanie dávkového súboru pomocou akýchkoľvek nástrojov. Takže budete musieť stiahnuť( odkazy na konci) tieto a extrahovať ich do jedného adresára.

instagram viewer

Akonáhle máte všetko stiahnuté, nastavte premennú "PathTo7Zip" v skripte na miesto, kde sú tieto súbory stiahnuté.

Skript

@ECHO OFF ECHO Vytvorte EXE z BAT ECHO Napísal: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.REM Použitie: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Požadované parametre: REM BatFileToConvert REM zdrojový dávkový súbor, ktorý sa použije na vytvorenie výstupného súboru Exe. REM REM Voliteľné parametre: REM IncludeFile REM Ďalšie súbory, ktoré sa majú zahrnúť do súboru Exe. REM Môžete zahrnúť externé nástroje používané dávkovým súborom, aby boli k dispozícii na vykonávacom stroji. SETLOCAL REM Konfigurácia( nie je potrebná žiadna citácia): SET PathTo7Zip = REM ---- Nemodifikujte nič pod týmto riadkom ---- SET OutputFile = "% ~ n1.exe" SET ZdrojFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Odstrániť existujúce súbory IF EXIST% OutputFILE% DEL% OutputFile% REM Vytvoriť zdrojový archív ECHO "% ~ dpnx1" & gt;% SourceFiles%: AddInclude IF{ % 2} =={ } GOTO Ukončiť ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Vytvoriť konfiguračný súbor ECHO;! @ Install @! UTF-8!& Gt;% Config% ECHO RunProgram = "% ~ nx1" & gt; & gt;% Config% ECHO;! @ InstallEnd @!& Gt; & gt;% Config% REM Vytvoriť EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Zdroj7ZFile%% OutputFile% REM Vyčistiť ak existujú% SourceFiles% DEL% SourceFiles% AK EXIST% Config% DEL% Config% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

Záver

Je dôležité poznamenať, že zatiaľ čo výsledný súbor beží presne rovnako ako zdrojový súbor BAT, nie je to pravá dávka spustiteľnej konverzie. Výsledný súbor je EXE, ale je určený na použitie pre samorozbalovacích inštalatérov. Keď vykonáte výsledný súbor EXE, proces ide takto:

  1. Obsah súboru EXE sa extrahuje do adresára temp.
  2. Načíta sa konfiguračný súbor vygenerovaný skriptom.
  3. Dávkový súbor obsiahnutý v súbore EXE sa spustí v novom príkazovom okne.
  4. Po dokončení sú dočasné súbory odstránené.

V systémoch Windows Vista a nových operačných systémoch sa po spustení skriptu môže zobraziť nasledujúce okno so správou. Po výbere správne nainštalovaného programu sa v tomto súbore v budúcnosti nezobrazí okno so správami.

Keďže súbor EXE sa spustí v novom okne, typický spôsob zaznamenávania výstupu( pomocou znaku '& gt') nebude fungovať podľa očakávania. Ak chcete zaznamenať výstup, musíte to natočiť vo svojom zdrojovom skripte.

Napriek týmto menším nepríjemnostiam je schopnosť previesť dávkový súbor do spustiteľného súboru a môže naozaj prísť do praxe.

Odkazy

Na stiahnutie Vykonajte EXE z BAT Script z Sysadmin Geek

Stiahnuť 7-Zip príkazového riadku

Stiahnuť 7-Zip Advanced 7zSD SFX