30Aug

Batch( BAT) parancsfájl konvertálása végrehajtható( EXE) fájlba

Amikor leérsz, a kötegelt fájlok és a végrehajtható fájlok nagyjából ugyanúgy működnek. Mindkettő egyszerűen egy sor utasítás és logika a Windows futtatásához. Tehát miért akarsz átalakítani egy kötegelt fájlt egy végrehajthatónak, ha alapvetően ugyanazt csinálják?Íme néhány ok:

  • hordozhatóság - további eszközöket is tartalmazhat az EXE fájlban, amelyre a kötegfájl függ.
  • védelem - Az EXE biztosítja a forrásszkript védelmét annak biztosítására, hogy véletlenül ne módosítsa.
  • Kényelem - A végrehajtható fájlok a Windows Start menühöz és / vagy a Windows 7 Feladatbillentyűhöz rögzíthetők.

Az alábbi parancsfájl segítségével könnyen elkészítheti saját végrehajtható fájlját egy kötegelt fájlból, kiegészítve a szükséges beágyazott eszközökkel.

konfiguráció

Ez a parancsfájl kihasználja a 7-Zip Advanced SFX( SelF eXtractor) előnyeit, hogy összegyűjtse és végrehajtsa a kötegelt fájlt a mellékelt eszközökkel. Tehát letölteni kell( linkek a végén), és kivonni őket egyetlen könyvtárba.

Miután mindent letöltött, állítsa be a 'PathTo7Zip' változót a szkriptben arra a helyre, ahol ezeket a fájlokat letöltötték.

A szkript

@ECHO OFF ECHO Készítsen EXE-t a BAT ECHO-tól Írta: Jason Faulkner ECHO SysadminGeek.com ECHO.VISSZHANG.REM Használat: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Szükséges paraméterek: REM BatFileToConvert REM Forrás batch fájl, amely a kimeneti Exe fájl előállításához használható.REM REM Opcionális paraméterek: REM IncludeFile REM További fájlok az Exe fájlba. REM A batch fájl által használt külső eszközöket is felveheti, így elérhetők a végrehajtó gépen. SETLOCAL REM Konfiguráció( nincs idézőjel): SET PathTo7Zip = REM ---- Ne módosítson semmit a sor alatt! ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Forrás7ZFile = "% Temp% MakeEXE.7z" REM A meglévő fájlok eltávolítása IF EXIST% OutputFile% DEL% OutputFile% REM Build forrás archívum ECHO "% ~ dpnx1" & gt;% SourceFiles%: AddInclude IF{ % 2} =={ } GOTO EndInclude ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Build konfigurációs fájl ECHO;; @ Install @! UTF-8!& Gt;% Config% ECHO RunProgram = "% ~ nx1" & gt;% Config% ECHO; @ InstallEnd @!& Gt; & gt;% Config% REM Build EXE COPY / B% PathTo7Zip% 7zsd.sfx +% Config% +% Source7ZFile%% OutputFile% REM Tisztítás IF EXIST% Forrásfájlok% DEL% SourceFiles% IF EXIST% Config% DEL% Config% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

Következtetés

Fontos megjegyezni, hogy míg a létrehozott fájl pontosan ugyanaz, mint a forrás BAT fájl, ez nem egy igazi köteg a végrehajtható konverzióhoz. Az így kapott fájl EXE, de önkitevő telepítőként való használatra készült. Amikor végrehajtja az eredményül kapott EXE fájlt, a folyamat így megy:

  1. Az EXE fájl tartalma a temp könyvtárba kerül.
  2. A szkript által létrehozott konfigurációs fájl olvasható.
  3. Az EXE fájlban található kötegfájl egy új parancsablakban fut.
  4. A befejezése után a temp fájlok eltávolításra kerülnek.

Windows Vista és új operációs rendszerek esetén a szkript futtatása után a következő üzenetablak jelenhet meg. Miután kiválasztotta "Ez a program helyesen van telepítve", a jövőben nem jelenik meg az üzenet mező.

Mivel az EXE fájl egy új ablakban indul el, a kimenet naplózásának tipikus módja( a '& gt;' karakterrel) nem fog működni a várt módon. A kimenet naplózásához a forráskódban natív módon kell kezelnie.

Annak ellenére, hogy ezek a kisebb kellemetlenségek, képesek arra, hogy egy kötegelt fájlt végrehajthatóvá alakítsanak, valóban hasznos lehet.

Linkek

Letöltés Készítsen EXE-t a BAT scriptből a Sysadmin Geek

-ből Download 7-Zip parancssori eszköz

Letöltés 7-Zip Advanced 7zSD SFX