30Aug
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% ENDLOCALZá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:
- Obsah souboru EXE se extrahuje do adresáře temp.
- Načte konfigurační soubor vygenerovaný skriptem.
- Dávkový soubor obsažený v souboru EXE je spuštěn v novém okně příkazu.
- 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