Як я можу конвертувати пакетний сценарій Windows у .exe?


24

У мене досить простий пакетний сценарій, який я хотів би виконати за допомогою макросу на моїй фантазійній ігровій клавіатурі. Однак SteelSeries Engine підтримує лише відкриття .exe-файлу за допомогою макро-кнопок. Чи є спосіб перетворити скрипт у простий виконуваний файл?


2
Bash або Batch? Вони досить різні, незважаючи на те, що за своєю метою подібні.
Френк Томас

1
Ви також можете використовувати AutoIt або AutoHotKey. Вони більш потужні, ніж Batch, і обидва включають компілятори для створення самостійних .exes.
Даніель Б

Ось як це можна зробити без зовнішніх інструментів
npocmaka

Відповіді:


23

Так, насправді. Це не дуже, але він чистий (після цього нічого не прибирати) і він фактично вбудований у вашу систему!

У вашій C:\Windows\System32\папці є файл під назвою iexpress.exe.

  • Клацніть правою кнопкою миші Run as administrator.
  • Створіть новий SED та оберіть "Витягнути файли та запустіть команду встановлення".
  • Додайте потрібний сценарій і переконайтесь, що на наступному екрані ви встановите програму встановлення cmd /c [your_script.bat]там, де [your_script.bat] - файл сценарію, який ви хочете виконати. Якщо цього не зробити, Windows спробує використовувати Command.com (стару версію командного рядка), яка не використовується вже досить давно.
  • Виберіть налаштування (можливо, вам потрібно буде вибрати "Зберігати файли, використовуючи довге ім'я файлу всередині пакета), встановіть вихідний шлях (до .exe-файлу, який ви хочете створити) та виберіть" Без перезавантаження ".
  • Клацніть далі, і ви повинні мати свій .exe!

Лише зауважте, цей файл насправді виконує лише функцію обгортки для вашого сценарію, а сам сценарій насправді виконується у темп-папці, створеній під час виконання (та видаленій згодом), тому переконайтеся, що ви не використовуєте жодних відносних шляхів.


2
На жаль, наше підприємство AV помітило, що отриманий виконуваний файл був «Кабінетом самовитягувальників» і позначив це як шкідливу діяльність.
kmote

@kmote мене теж. вони запитували мене про це один раз раніше, тому що він, ймовірно, з’явився у звіті, і я пояснив, що це таке, цього разу вони просто видалили його, не запитуючи.
Нуль

Niice. Спасибі man.Th допомогло мені створити EXE зі сценарію BAT, який я не зміг зробити раніше, використовуючи різні інструменти, доступні в Інтернеті, такі як Bat2Exe тощо,
Суворий Канчіна,

12

Ось дві безкоштовні програми, які я настійно рекомендую створювати EXE з пакетних файлів

1 - Конвертор Bat Toe

2 - Бата 2 Exe

Ви можете використовувати обидві програми з простим графічним інтерфейсом.

Bat To Exe Converterпідтримує також команди CLI ( \?прапор для довідки). Основний приклад з документації:

Bat_To_Exe_Converter.exe -bat mybatfile.bat -save myprogram.exe -icon myicon

Bat2Execдозволяє додавати маніфест адміністратора, який мені сподобався.
каламбур

2
Чи не могли б ви також швидко ознайомитись із тим, як виконати завдання за допомогою цих програм? Ніколи не зашкодить мати додаткові деталі у відповіді :)
Ben N

Розширений конвертер Bat 2 Exe - це умовно
djibe


Чи підтримує CLI 2 - Bat 2 Exe ? Я не бачу жодної інформації про це.
Ст

5

Якщо програмне забезпечення на вашій клавіатурі підтримує передачу аргументів у виконуваний файл (що неможливо), вам не доведеться.

cmd.exe /c <path to batchfile>

запустив пакетний файл і дав би дійсне виконувану назву програмного забезпечення клавіатури. Не потрібна конверсія, це означає, що ви завжди можете легко вносити зміни до свого кажана без додаткових кроків.


4

Я знайшов цю статтю, яка показує вам, як перетворити .bat в .exe файл за допомогою пакетного наука:

@ECHO OFF
ECHO Make EXE From BAT
ECHO Written by: Jason Faulkner
ECHO SysadminGeek.com
ECHO.
ECHO.

REM Usage:
REM MakeExeFromBat BatFileToConvert [IncludeFile1] [IncludeFile2] [...]
REM
REM Required Parameters:
REM  BatFileToConvert
REM      Source batch file to use to produce the output Exe file.
REM
REM Optional Parameters:
REM  IncludeFile
REM      Additional files to include in the Exe file.
REM      You can include external tools used by the batch file so they are available on the executing machine.

SETLOCAL

REM Configuration (no quotes needed):
SET PathTo7Zip=


REM ---- Do not modify anything below this line ----

SET OutputFile="%~n1.exe"
SET SourceFiles="%TEMP%MakeEXE_files.txt"
SET Config="%TEMP%MakeEXE_config.txt"
SET Source7ZFile="%Temp%MakeEXE.7z"

REM Remove existing files
IF EXIST %OutputFile% DEL %OutputFile%

REM Build source archive
ECHO "%~dpnx1" > %SourceFiles%
:AddInclude
IF {%2}=={} GOTO EndInclude
ECHO "%~dpnx2" >> %SourceFiles%
SHIFT /2
GOTO AddInclude
:EndInclude
"%PathTo7Zip%7za.exe" a %Source7ZFile% @%SourceFiles%

REM Build config file
ECHO ;!@Install@!UTF-8! > %Config%
ECHO RunProgram="%~nx1" >> %Config%
ECHO ;!@InstallEnd@! >> %Config%

REM Build 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

Важливі завантаження:


Чи можна зробити відлуння EXE до того ж командного рядка, з якого він був запущений? (На відміну від відкриття нового вікна)
Stevoisiak
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.