Как преобразовать пакетный скрипт Windows в .exe?

Как преобразовать пакетный скрипт Windows в .exe?

У меня есть довольно простой пакетный скрипт, который я хотел бы выполнить с помощью макроса на моей крутой игровой клавиатуре. Однако SteelSeries Engine поддерживает только открытие .exe-файла с помощью кнопок макроса. Есть ли способ преобразовать скрипт в простой исполняемый файл?

решение1

Да, на самом деле. Это некрасиво, но это чисто (нечего потом убирать) и это фактически встроено в вашу систему!

В вашей C:\Windows\System32\папке есть файл с именем iexpress.exe.

  • Щелкните правой кнопкой мыши и Run as administrator.
  • Создайте новый SED и выберите «Извлечь файлы и выполнить команду установки».
  • Добавьте нужный вам скрипт и убедитесь, что на следующем экране вы указали программу установки, cmd /c [your_script.bat]где [your_script.bat] — это файл скрипта, который вы хотите выполнить. Если вы этого не сделаете, Windows попытается использовать Command.com (старая версия командной строки), которая уже давно не используется.
  • Выберите настройки (возможно, вам придется выбрать «Хранить файлы с длинным именем внутри пакета»), укажите выходной путь (к файлу .exe, который вы хотите создать) и выберите «Без перезапуска».
  • Нажмите «Далее», и у вас должен появиться ваш .exe!

Обратите внимание: этот файл на самом деле действует только как оболочка для вашего скрипта, а сам скрипт на самом деле выполняется во временной папке, создаваемой при выполнении (и удаляемой впоследствии), поэтому убедитесь, что вы не используете относительные пути.

решение2

Вот две бесплатные программы, которые я настоятельно рекомендую для создания EXE-файлов из пакетных файлов.

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

2 - Летучая мышь 2 Exe

Вы можете использовать обе программы с простым графическим интерфейсом.

Bat To Exe Converterподдерживает также команды CLI ( \?флаг для справки). Простой пример из документации:

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

решение3

Если программное обеспечение вашей клавиатуры поддерживает передачу аргументов исполняемому файлу (что вполне вероятно), то вам это делать не нужно.

cmd.exe /c <path to batchfile>

запустит пакетный файл и предоставит вам действительный исполняемый файл для имени программного обеспечения клавиатуры. Отсутствие необходимости в преобразовании означает, что вы всегда можете легко вносить изменения в свой bat без дополнительных шагов.

решение4

Различные версии Windows по-разному действуют на одни и те же команды пакетного файла, а некоторые команды ограничены некоторыми системами Windows, например, findstrи shutdown.
Кстати, CMD в Win 10 не позволяет вносить изменения в SETLOCALкомандную строку. Подходит для пакетных файлов.

По этой ссылке вы найдете различные команды для перезапуска различных версий Windows: https://www.computerhope.com/issues/ch000321.htm

Так что если вы скомпилируете скрипт на Win 98 и запустите на Win 8.1, вы получите неожиданные результаты или скрипты могут вообще не работать. Смотрите список команд здесь: https://www.ionos.com/digitalguide/server/know-how/windows-cmd-commands/

По этой причине для каждой версии Windows понадобится свой компилятор, желательно такой, который выдаст двоичный код (generic), который можно будет запустить на максимально возможном количестве микросхем ЦП с теми же наборами инструкций. Обходной путь, предлагаемый большинством программ, заключается в том, чтобы обернуть скрипт в exe-файл, который распакует и выполнит скрипт при открытии/запуске, например, Bat_To_Exe_Converter, Bat2Exe, BatchCompiler или Winzip: https://support.winzip.com/hc/en-us/articles/115011794948-Что-такое-самораспаковывающийся-Zip-файл-

Для решения проблемы переносимости все большую популярность приобрели виртуальные машины, что привело к появлению Java и связанных с ней скриптов.

Однако это все еще будет интерпретируемый код, и не такой быстрый, как скомпилированный код. Даже байт-код (промежуточный код) из виртуальных машин все еще нужно компилировать, даже если это (JIT): https://aboullaite.me/understanding-jit-compiler-just-in-time-compiler/

Короче говоря, вы можете получить exe-файл, содержащий скрипт, который будет интерпретироваться командным процессором, но он не будет собственным исполняемым файлом, то есть он не будет запускаться без хоста операционной системы Windows.

Связанный контент