Hjemmeside » hvordan » Konverter en batch (BAT) Script til en eksekverbar (EXE) fil

    Konverter en batch (BAT) Script til en eksekverbar (EXE) fil

    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 fungerer det samme? Her er noen grunner:

    • Bærbarhet - du kan inkludere tilleggsverktøy i din EXE-fil som batchfilen avhenger av.
    • Beskyttelse - en EXE gir beskyttelse for kilde skriptet for å sikre at det ikke utilsiktet endres.
    • Convenience - Kjørbare filer kan pinnes 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 utnytter en 7-Zip-avansert SFX (SelF eXtractor) til å pakke og utføre batchfilen med alle medfølgende 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 er lastet ned.

    Manuset

    @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" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Fjern eksisterende filer HVIS EXIS% OutputFile% DEL% OutputFile% REM Bygg kildearkiv ECHO "% ~ dpnx1">% SourceFiles%: AddInclude IF % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Bygg konfigurasjonsfil ECHO ;! @ installere @ UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Bygg EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Clean up IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

    Konklusjon

    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:

    1. Innholdet i EXE-filen hentes til temp-katalogen.
    2. Konfigureringsfilen som genereres av skriptet, er lest.
    3. Batchfilen som finnes i EXE-filen, utføres i et nytt kommandovindu.
    4. Når du er ferdig, blir tempfiler fjernet.

    På Windows Vista og nye operativsystemer ser du kanskje følgende meldingsboks etter at skriptet kjøres. Etter at du har valgt "Dette programmet er riktig installert", vil meldingsboksen ikke vises i fremtiden for denne filen.

    Fordi EXE-filen lanseres i et nytt vindu, virker den vanlige måten å logge utdata (ved hjelp av '>') ikke som forventet. For å logge utgangen, må du håndtere dette innfødt i kilde skriptet.

    Til tross for disse mindre ulempene 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 Command Line Tool

    Last ned 7-Zip Advanced 7zSD SFX