Выполните те же действия, что и гид . Я пытаюсь конвертировать из bat в exe без установки какого-либо нового программного обеспечения, таких как Bat to Exe Converter . Причина, по которой я использую этот метод, заключается в том, что на всех машинах на моем рабочем месте уже установлена программа 7zip, и я могу ее использовать, однако мне не разрешается запускать сценарий с использованием внешнего программного обеспечения, отсутствующего на главном сервере, для совместимости на любом компьютере в компания.
У меня есть следующее TEST.bat :
ECHO This is a Test bat to exe
pause
и config.txt :
;!@Install@!UTF-8!
RunProgram="TEST.bat"
;!@InstallEnd@!
тогда я вызываю следующую командную строку (в другом .bat):
COPY /B "%PathTo7Zip%\7zCon.sfx" + %Config% + %Source7ZFile% %OutputFile%
%PathTo7Zip%
- это каталог 7zCon.sfx
%Config%
- это config.txt файл выше
%Source7ZFile%
мой архив .7z
и %OutputFile%
- это мой выходной файл TEST.exe , который должен запускать файл bat, когда я вызываю его, согласно автору руководства.
Однако при вызове TEST.exe
происходит разархивирование архива .7z (что ожидается), а затем он завершается без запуска TEST.bat .
Однако автор объясняет:
Вывод:
Важно отметить, что, хотя результирующий файл работает точно так же, как и исходный BAT-файл, это не настоящий пакетный преобразователь в исполняемый файл. Полученный файл представляет собой EXE-файл, однако он предназначен для использования самораспаковывающимися установщиками. Когда вы выполняете полученный EXE-файл, процесс выглядит примерно так:
- Содержимое EXE-файла извлекается во временный каталог.
- Файл конфигурации, сгенерированный скриптом, читается.
- Пакетный файл, содержащийся в файле EXE, выполняется в новом
командное окно.
- По завершении временные файлы удаляются.