30Aug

Převést skript dávky( BAT) do souboru spustitelného souboru( EXE)

Když se k tomu dostanete, dávkové soubory a spustitelné soubory pracují téměř stejným způsobem. Oba jsou prostě sada instrukcí a logiky pro spuštění systému Windows. Tak proč byste chtěli konvertovat dávkový soubor na spustitelný soubor, pokud v podstatě fungují stejně?Zde je několik důvodů: Přenosnost

  • - do souboru EXE můžete přidat další nástroje, od kterých závisí dávkový soubor.
  • Ochrana - EXE poskytuje ochranu zdrojového skriptu, aby se zajistilo, že nebude neúmyslně upraven.
  • Pohodlí - spustitelné soubory mohou být připojeny k nabídce Windows Start nebo Windows 7 Task Bar.

Pomocí níže uvedeného skriptu můžete snadno vytvářet vlastní spustitelný soubor z dávkového souboru, který je doplněn potřebnými a vloženými nástroji. Konfigurace

Tento skript využívá pokročilý SFX( SelF eXtractor) se 7 zipy pro sdružování a spuštění dávkového souboru s jakýmikoliv přiloženými nástroji. Takže budete muset stáhnout( odkazy na konci) tyto a extrahovat je do jediného adresáře.

Jakmile máte vše stažené, nastavte proměnnou 'PathTo7Zip' ve skriptu na místo, kde byly tyto soubory staženy.

Skript

@ECHO OFF ECHO Vytvořit EXE od BAT ECHO Autor: Jason Faulkner ECHO SysadminGeek.com ECHO.ECHO.REM Použití: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...] REM REM Požadované parametry: REM BatFileToConvert REM zdrojový dávkový soubor, který se použije k vytvoření výstupního souboru Exe. REM REM Volitelné parametry: REM IncludeFile REM Další soubory, které mají být zahrnuty do souboru Exe. REM Můžete zahrnout externí nástroje používané dávkovým souborem tak, aby byly k dispozici na prováděcím stroji. Konfigurace SETLOCAL REM( není třeba uvést citace): SET PathTo7Zip = REM ---- Neupravujte nic pod tímto řádkem ---- SET OutputFile = "% ~ n1.exe" SET ZdrojFiles = "% TEMP% MakeEXE_files.txt" SETConfig = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Odstranit existující soubory Pokud existují EXIST% OutputFile% DEL% OutputFile% REM Vytvořit zdrojový archiv ECHO "% ~ dpnx1" & gt;% SourceFiles%: AddInclude pokud IF{ % 2} =={ } GOTO EndInclude ECHO "% ~ dpnx2" & gt; & gt;% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe" a% Source7ZFile% @% SourceFiles% REM Vytvořit konfigurační soubor ECHO;! @ Install @! UTF-8!& gt;% Config% ECHO RunProgram = "% ~ nx1" & gt; & gt;% Config% ECHO;! @ InstallEnd @!& gt;% Config% REM Vytvořit EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Vyčistit pokud existují% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config% IFEXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL

Závěr

Je důležité poznamenat, že zatímco výsledný soubor běží přesně stejný jako zdrojový soubor BAT, není to skutečná dávka k spustitelné konverzi. Výsledný soubor je EXE, ale je určen pro použití pro samorozbalovací instalátory. Při spuštění výsledného souboru EXE proces postupuje takto:

  1. Obsah souboru EXE se extrahuje do adresáře temp.
  2. Načte konfigurační soubor vygenerovaný skriptem.
  3. Dávkový soubor obsažený v souboru EXE je spuštěn v novém okně příkazu.
  4. Po dokončení jsou dočasné soubory odstraněny.

V systému Windows Vista a nových operačních systémech se po spuštění skriptu může zobrazit následující zpráva. Po výběru "Tento program je správně nainstalován" se v tomto souboru v budoucnu nezobrazí okno se zprávou.

Protože soubor EXE se spustí v novém okně, typický způsob záznamu výstupu( pomocí znaku '& gt') nebude pracovat podle očekávání.Aby bylo možné zaznamenat výstup, budete muset tento zdroj naskenovat nativní v zdrojovém skriptu.

Navzdory těmto nepatrným potížím může být převedení dávkového souboru na spustitelný soubor skutečně užitečné.

Odkazy

Stáhnout Značka EXE z skriptu BAT od Sysadmin Geek

Stáhnout nástroj pro příkazový řádek 7-Zip

Stáhnout 7-Zip Advanced 7zSD SFX