Конвертиране на Batch (BAT) скрипт в изпълним (EXE) файл
Когато стигнете до него, партидните файлове и изпълними файлове работят почти по същия начин. И двете са просто набор от инструкции и логика за изпълнение на Windows. Така че, защо бихте искали да конвертирате партиден файл в изпълним файл, ако те по същество работят по същия начин? Ето няколко причини:
- Преносимост - можете да включите допълнителни инструменти във вашия EXE файл, от който зависи пакетния файл.
- Защита - EXE осигурява защита за изходния скрипт, за да се гарантира, че не е неволно променен.
- Удобство - Изпълними файлове могат да бъдат прикачени към стартовото меню на Windows и / или Windows 7 Task Bar.
С помощта на скрипта по-долу можете лесно да създадете свой собствен изпълним файл от пакетния файл, допълнен с необходимите вградени инструменти.
Конфигурация
Този скрипт се възползва от 7-Zip усъвършенстван SFX (SelF eXtractor), за да комбинира и изпълни командния файл с всички включени инструменти. Така че ще трябва да изтеглите (връзките, предоставени в края) и ги извлечете в една директория.
След като изтеглите всичко, задайте променливата "PathTo7Zip" в скрипта до мястото, където са изтеглени тези файлове.
Скриптът
@ECHO OFF ECHO Направете EXE От BAT ECHO Написано от: Джейсън Фокнър ECHO SysadminGeek.com ECHO. Хуманитарна помощ. REM Използване: REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] […] REM REM Необходими параметри: REM BatFileToConvert REM Източник на партида файл, за да се използва за извеждане на Exe файл. REM REM Незадължителни параметри: REM IncludeFile REM Допълнителни файлове за включване в Exe файла. REM Можете да включите външни инструменти, използвани от командния файл, така че те да са налични на изпълняващата машина. SETLOCAL REM Конфигурация (без котировки): SET PathTo7Zip = REM ---- Не променяйте нищо под тази линия ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP% MakeEXE_files.txt" SET Config = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Премахване на съществуващи файлове IF EXIST% OutputFile% DEL% OutputFile% REM Изграждане на архив ECHO "% ~ dpnx1">% SourceFiles%: AddInclude АКО % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe"% Source7ZFile% @% SourceFiles% REM ;! @ Инсталирайте @ UTF-8! >% Config% ECHO RunProgram = "% ~ nx1" >>% Config% ECHO;! @ InstallEnd @! >>% Config% REM Изграждане EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Source7ZFile%% OutputFile% REM Почистване IF EXIST% SourceFiles% DEL% SourceFiles% IF EXIST% Config% DEL% Config % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
заключение
Важно е да се отбележи, че докато полученият файл работи точно същия като изходния BAT файл, това не е истинско партидно изпълнение. Полученият файл е EXE, но е предназначен да се използва за самостоятелно извличащи се инсталатори. Когато изпълните получения EXE файл, процесът върви по следния начин:
- Съдържанието на EXE файла се извлича в temp директорията.
- Конфигурационният файл, генериран от скрипта, се чете.
- Пакетният файл, съдържащ се в EXE файла, се изпълнява в нов команден прозорец.
- Веднъж завършени, временните файлове се премахват.
В Windows Vista и новите операционни системи можете да видите следното съобщение след стартирането на скрипта. След като изберете „Тази програма е инсталирана правилно“, полето за съобщение няма да се показва в бъдеще за този файл.
Тъй като EXE файлът се стартира в нов прозорец, типичният начин за извеждане на изход (използвайки char) не работи както се очаква. За да влезете в изхода, трябва да се справите с това в оригиналния скрипт.
Въпреки тези незначителни неудобства, възможността да конвертирате партиден файл в изпълним файл наистина може да ви бъде от полза.
звена
Изтеглете Направете EXE от BAT Script от Sysadmin Geek
Изтеглете 7-Zip Command Line Tool
Изтеглете 7-Zip Advanced 7zSD SFX