Muunna erän (BAT) komentosarja suoritettavaksi (EXE) -tiedostoksi
Kun se menee alas, erätiedostot ja suoritettavat tiedostot toimivat melko samalla tavalla. Molemmat ovat yksinkertaisesti joukko ohjeita ja logiikkaa Windowsille. Joten miksi haluaisit muuntaa erätiedoston suoritettavaksi, jos ne toimivat pääosin samalla tavalla? Seuraavassa on muutamia syitä:
- Siirrettävyys - voit sisällyttää EXE-tiedostoon lisää työkaluja, jotka erätiedosto riippuu.
- Suojaus - EXE suojaa lähdekoodiasi varmistaaksesi, että sitä ei vahingossa muuteta.
- Mukavuus - Suorittavat tiedostot voidaan liittää Windowsin Käynnistä-valikkoon ja / tai Windows 7 -työkalupalkkiin.
Kun alla oleva skripti on, voit helposti rakentaa oman suoritustiedoston erätiedostosta, johon on lisätty ja vaaditut upotetut työkalut.
kokoonpano
Tämä skripti hyödyntää 7-Zip-edistynyttä SFX: ää (SelF eXtractor), jolla paketti ja suoritetaan erätiedosto johonkin sisällytettyyn työkaluun. Joten sinun täytyy ladata (linkit, jotka on annettu lopussa) ja purkaa ne yhteen hakemistoon.
Kun olet ladannut kaiken, aseta komentosarjassa PathTo7Zip-muuttuja paikkaan, jossa nämä tiedostot ladataan.
Käsikirjoitus
@ECHO OFF ECHO Tee EXE BAT ECHO: sta Kirjoittanut: Jason Faulkner ECHO SysadminGeek.com ECHO. ECHO. REM-käyttö: REM MakeExeFromBat BatFileToConvert [SisällytäFile1] [Sisällytä tiedosto2] […] REM REM vaadittavat parametrit: REM BatFileToConvert REM-lähdetiedosto, jota käytetään tulostamaan Exe-tiedosto. REM REM Valinnaiset parametrit: REM IncludeFile REM Lisätiedostot Exe-tiedostoon. REM Voit sisällyttää erätiedoston käyttämiä ulkoisia työkaluja, jotta ne ovat käytettävissä suoritettavassa koneessa. SETLOCAL REM -määritys (ei tarvita lainausmerkkejä): SET PathTo7Zip = REM ---- Älä muuta mitään tämän rivin alapuolella ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Poista olemassa olevat tiedostot JOS EXIST% OutputFile% DEL% OutputFile% REM Rakenna lähdearkisto ECHO "% ~ dpnx1">% SourceFiles%: AddInclude JOS % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe"% Source7ZFile% @% SourceFiles% REM Rakenna määritystiedosto ECHO ;! @ Asenna @! UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Build EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Puhdista IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
johtopäätös
On tärkeää huomata, että vaikka tuloksena oleva tiedosto toimii täsmälleen sama kuin lähde-BAT-tiedosto, tämä ei ole todellinen erä suoritettavaan muunnokseen. Tuloksena oleva tiedosto on EXE, mutta se on tarkoitettu käytettäväksi itsepurkaaviin asentajiin. Kun suoritat tuloksena olevan EXE-tiedoston, prosessi menee näin:
- EXE-tiedoston sisältö puretaan temp-hakemistoon.
- Käsikirjoituksen luomaa kokoonpanotiedostoa luetaan.
- EXE-tiedoston sisältämä erätiedosto suoritetaan uudessa komentoikkunassa.
- Kun olet valmis, temp-tiedostot poistetaan.
Windows Vistassa ja uusissa käyttöjärjestelmissä saatat nähdä seuraavan viestiruudun komentosarjan suorittamisen jälkeen. Kun olet valinnut "Tämä ohjelma on asennettu oikein", viestiruutua ei näytetä tulevaisuudessa tämän tiedoston kohdalla.
Koska EXE-tiedosto käynnistyy uudessa ikkunassa, tyypillinen tapa kirjautua ulos (käyttäen '>' charia) ei toimi odotetulla tavalla. Jotta voisit kirjata lähdön, sinun pitäisi käsitellä tätä natiivisti lähdekoodissasi.
Näistä vähäisistä haitoista huolimatta erätiedoston muuntaminen suoritettavaksi voi todella olla kätevä.
Linkit
Lataa Make EXE from BAT Script from Sysadmin Geek
Lataa 7-Zip-komentorivityökalu
Lataa 7-Zip Advanced 7zSD SFX