If-Koubou

Конвертиране на скрипт (BAT) в изпълним (EXE) файл

Конвертиране на скрипт (BAT) в изпълним (EXE) файл (Как да)

Когато стигнете до него, партидните файлове и изпълнимите файлове работят почти по същия начин. И двата са просто набор от инструкции и логика за изпълнение на Windows. Защо тогава искате да конвертирате партиден файл в изпълним файл, ако по същество работи същото? Ето няколко причини:

  • Преносимост - можете да включите допълнителни инструменти в EXE файла, от които зависи партидата.
  • Защита - EXE осигурява защита за вашия скрипт на източника, за да гарантира, че не се променя по невнимание.
  • Удобство - изпълнимите файлове могат да бъдат прикачени към менюто за стартиране на Windows и / или лентата за задачи на Windows 7.

С скрипта по-долу можете лесно да създавате собствен изпълним файл от партиден файл, пълен с необходимите вградени инструменти.

Конфигурация

Този скрипт се възползва от 7-Zip advanced SFX (SelF eXtractor), за да обедини и изпълни партидния файл с всички включени инструменти. Така че ще трябва да изтеглите (връзки, предоставени в края) и да ги извлечете в една директория.

След като изтеглите всичко, задайте променливата "PathTo7Zip" в скрипта на мястото, където са изтеглени тези файлове.

Скриптът

@ECHO OFF ECHO Направете EXE от BAT ECHO Написано от: Jason Faulkner 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% MakeEXEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM Премахване на съществуващи файлове, ако има EXIST% OutputFile% DEL% OutputFile% REM Изграждане на архив на източника ECHO "% ~ dpnx1">% SourceFiles% АКО % 2 ==  GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% PathTo7Zip% 7za.exe"% Source7ZFile% @ SourceFiles% REM Изграждане на конфигурационен файл ECHO ;! @ Инсталирайте @ UTF-8! >% Конфигурация% ECHO RunProgram = "% ~ nx1" >>% Конфигурация% ECHO;! @ InstallEnd @! >>% Config% REM Изграждане EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% Config% +% Източник7ZFile%% OutputFile% REM Почистване АКО съществува% SourceFiles% DEL% SourceFiles% АКО EXIST% Config% DEL% Config % АКО съществува% Източник7ЗФийл% DEL% Източник7З Файл% ENDLOCAL

заключение

Важно е да се отбележи, че докато полученият файл работи точно като файла източник на BAT, това не е истинска партида за изпълними реализации. Полученият файл е EXE, но е предназначен да бъде използван за инсталатори за самоизвличане. Когато изпълнявате резултантния EXE файл, процесът върви по следния начин:

  1. Съдържанието на EXE файла се извлича в темп директорията.
  2. Извежда се конфигурационният файл, генериран от скрипта.
  3. Файловият файл, съдържащ се в EXE файла, се изпълнява в нов команден прозорец.
  4. След като приключите, временните файлове се премахват.

В Windows Vista и в новите операционни системи може да видите следното поле със съобщения след изпълнението на скрипта. След като изберете "Тази програма е инсталирана правилно", полето за съобщения няма да се показва в бъдеще за този файл.

Тъй като EXE файлът се стартира в нов прозорец, типичният начин за записване на изход (използвайки char>) няма да работи както се очаква. За да влезете в изхода, ще трябва да се справите с това естествено във вашия скрипт.

Въпреки тези незначителни неудобства, да можете да конвертирате партиден файл в изпълним файл, наистина може да дойде по-удобно.

звена

Изтегляне Направете EXE от BAT Script от Sysadmin Geek

Изтеглете 7-Zip Command Line Tool

Изтеглете 7-Zip Advanced 7zSD SFX