Konvertáljon egy kötegelt (BAT) parancsfájlt végrehajtható (EXE) fájlra
Amikor leállsz, a kötegelt fájlok és a futtatható fájlok ugyanúgy működnek. Mindkettő egyszerűen egy utasítások és logika a Windows számára. Akkor miért szeretné konvertálni egy kötegelt fájlt egy végrehajthatóvá, ha lényegében ugyanaz a munka? Íme néhány ok:
- Hordozhatóság - az EXE fájlban további eszközöket is tartalmazhat, amelyek függenek a kötegelt fájltól.
- Védelem - egy EXE védelmet nyújt a forrásszkript számára, hogy biztosítsa, hogy nem véletlenül módosították.
- Kényelem - A végrehajtható fájlokat a Windows Start menüjére és / vagy a Windows 7 Task Bar-ra lehet rögzíteni.
Az alábbi szkript segítségével könnyedén elkészítheti saját futtatható fájlját egy kötegelt fájlból, kiegészítve és szükséges beágyazott eszközökkel.
Configuration
Ez a szkript kihasználja a 7-Zip továbbfejlesztett SFX (SelF eXtractor) használatát a kötegelt fájl csatolásához és végrehajtásához bármilyen mellékelt eszközzel. Ezért le kell töltenie (a végén megadott linkeket), és egy könyvtárba kell kivonnia őket.
Miután mindent letöltött, állítsa a "PathTo7Zip" változót a parancsfájlban arra a helyre, ahol ezeket a fájlokat letöltötték.
A script
@ECHO OFF ECHO Készítsen EXE-t BAT BAT-ró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 kötegfájl az Exe fájl előállításához. REM REM Opcionális paraméterek: REM IncludeFile REM További fájlok az Exe fájlba. REM Lehetőség van a kötegfájl által használt külső eszközökre is, hogy azok elérhetők legyenek a végrehajtó gépen. SETLOCAL REM konfiguráció (nincs szükség idézőjelekre): SET PathTo7Zip = REM ---- Ne módosítson semmit a sor alatt ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM A meglévő fájlok eltávolítása HA EXIST% OutputFile% DEL% OutputFile% REM Forrás archívum 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 ECHO fájl ;! @ Telepítse @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Tisztítás IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
Következtetés
Fontos megjegyezni, hogy míg a kapott fájl pontosan ugyanaz, mint a forrás BAT fájl, ez nem igazi tétel a végrehajtható konverzióhoz. Az így kapott fájl egy EXE, de az önkicsomagoló telepítők számára készült. Amikor végrehajtja az eredményül kapott EXE fájlt, a folyamat valami ilyesmi:
- Az EXE fájl tartalma a temp könyvtárba kerül.
- A parancsfájl által létrehozott konfigurációs fájl elolvasásra kerül.
- Az EXE fájlban található kötegfájl egy új parancsablakban kerül végrehajtásra.
- Miután elkészült, a temp fájlok törlődnek.
A Windows Vista és az új operációs rendszereken az alábbi üzenetablak jelenik meg a szkript futtatása után. Miután kiválasztotta az „Ez a program helyesen telepítve” lehetőséget, az üzenet mező nem jelenik meg a jövőben ennek a fájlnak.
Mivel az EXE fájl egy új ablakban indul el, a naplózás tipikus módja (a '>' char használatával) nem fog működni a várt módon. A kimenet naplózásához ezt a natívan kell kezelni a forrásfájlban.
A kisebb kényelmetlenségek ellenére a kötegelt fájl egy végrehajthatóvá történő átalakítása valóban hasznos lehet.
linkek
Töltse le az EXE-t a BAT Script-ről a Sysadmin Geek-től
Letöltés 7-Zip parancssori eszköz
Letöltés 7-Zip Advanced 7zSD SFX