30Aug
Når du kommer til det, fungerer batchfiler og kjørbare filer ganske mye på samme måte. Begge er bare et sett med instruksjoner og logikk for Windows-utførelsen. Så hvorfor vil du konvertere en batchfil til en kjørbar hvis de egentlig jobber det samme? Her er noen grunner:
- Portability - du kan inkludere flere verktøy i din EXE-fil som batchfilen avhenger av.
- Protection - en EXE gir beskyttelse for kilde skriptet for å sikre at det ikke utilsiktet endres.
- Convenience - Kjørbare filer kan festes til Windows Start-menyen og / eller Windows 7 oppgavelinjen.
Med skriptet nedenfor kan du enkelt bygge din egen kjørbare fil fra en batchfil, komplett med og nødvendige innebygde verktøy.
-konfigurasjon
Dette skriptet benytter seg av en 7-Zip-avansert SFX( SelF eXtractor) til å pakke og utføre batchfilen med alle inkluderte verktøy. Så du må laste ned( koblinger som tilbys på slutten) disse og trekke dem ut i en enkelt katalog.
Når du har alt lastet ned, setter du 'PathTo7Zip'-variabelen i skriptet til stedet der disse filene lastes ned.
Skriptet
@ECHO OFF ECHO Lag EXE fra BAT ECHO Skrevet av: Jason Faulkner ECHO SysadminGeek.com ECHO.EKKO.REM-bruk: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Krevde parametere: REM BatFileToConvert REM Source-batchfil som skal brukes til å produsere utdata-Exe-filen. REM REM Valgfrie parametere: REM IncludeFile REM Ekstra filer som skal inkluderes i Exe-filen. REM Du kan inkludere eksterne verktøy som brukes av batchfilen, slik at de er tilgjengelige på eksekveringsmaskinen. SETLOCAL REM-konfigurasjon( ingen anførselstegn trengs): SET PathTo7Zip = REM ---- Ikke endre noe under denne linjen ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Fjern eksisterende filer HVIS EXIS% OutputFile% DEL% OutputFile% REM Bygg kildearkiv 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 Bygg konfigurasjonsfilen ECHO;! @ Install @! UTF-8!& Gt;% Config% ECHO RunProgram = "% ~ nx1" & gt; & gt;% Config% ECHO;! @ InstallEnd @!& Gt; & gt;% Config% REM Bygg EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Ryd opp IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config% IFEksempel% Source7ZFile% DEL% Source7ZFile% ENDLOCALKonklusjon
Det er viktig å merke seg at mens den resulterende filen kjører nøyaktig det samme som kilde-BAT-filen, er dette ikke en sann batch til kjørbar konvertering. Den resulterende filen er en EXE, men den er ment å brukes til selvutpakkende installatører. Når du kjører den resulterende EXE-filen, går prosessen noe slikt:
- Innholdet i EXE-filen hentes til temp-katalogen.
- Konfigureringsfilen som genereres av skriptet, er lest.
- Batchfilen i EXE-filen utføres i et nytt kommandovindu.
- Når du er ferdig, blir tempfiler fjernet.
I Windows Vista og nye OS kan du se følgende meldingsboks etter at skriptet er kjørt. Etter at du har valgt "Dette programmet er riktig installert", vil meldingsboksen ikke vises i fremtiden for denne filen.
Fordi EXE-filen starter i et nytt vindu, virker den vanlige måten å logge utdata( ved hjelp av "& gt;" -karmen) ikke som forventet. For å logge utgangen, må du håndtere dette innfødt i kilde skriptet ditt.
Til tross for disse mindre ulemper, kan det være nyttig å kunne konvertere en batchfil til en kjørbar.
Lenker
Last ned Lag EXE fra BAT Script fra Sysadmin Geek
Last ned 7-Zip kommandolinjeverktøy
Last ned 7-Zip Advanced 7zSD SFX