Вы написали рабочий пакетный файл или скрипт PowerShell и теперь хотите передать его кому-то одним файлом .exe: один файл для двойного щелчка, без вопросов «открыть с помощью» и без консоли, полной команд.
Онлайн-«конвертер BAT в EXE» для этого не нужен. В Windows уже есть инструмент для этого, а у PowerShell есть бесплатный открытый модуль, который делает то же самое для скриптов .ps1. Оба работают на вашем компьютере, поэтому итоговый файл собирается только из вашего скрипта и ничего больше.
Спешите?
- Пакетный файл (.bat / .cmd): нажмите Win + R, введите
iexpressи упакуйте файл с командой установкиcmd /c yourscript.bat. - PowerShell (.ps1): один раз выполните
Install-Module ps2exe -Scope CurrentUser, затемInvoke-ps2exe .\script.ps1 .\script.exe. - Python (.py):
pip install pyinstaller, затемpyinstaller --onefile script.py. - Нужен значок? Возьмите его из любой программы с помощью бесплатного Icon Extractor.
Способ 1: BAT в EXE с помощью IExpress (встроен в Windows)
IExpress входит в Windows уже несколько десятилетий. Он создан для сборки небольших установщиков: упаковывает файлы в один EXE, при запуске распаковывает их во временную папку и выполняет команду. Этой командой может быть ваш пакетный файл.
- Нажмите Win + R, введите
iexpressи нажмите Enter. - Выберите Create new Self Extraction Directive file и нажмите Next.
- Выберите Extract files and run an installation command.
- Задайте пакету заголовок (он отображается в заголовке окна любого сообщения).
- Запрос подтверждения: No prompt. Лицензионное соглашение: Do not display a license.
- Packaged files: нажмите Add и выберите свой файл
.bat(и все нужные ему файлы). - Install Program: введите
cmd /c yourscript.batвручную, с именем вашего файла. Если просто выбрать .bat в списке, часто ничего не происходит, потому что IExpress не запускает пакетные файлы напрямую. - Show window: Default, чтобы видеть консоль, или Hidden, чтобы работать скрытно.
- Сообщение о завершении: No message.
- Package name: выберите, куда сохранить EXE, и отметьте Hide File Extracting Progress Animation from User и Store files using Long File Name inside Package.
- Restart: No restart. Сохраните SED-файл, если захотите пересобрать позже, затем нажмите Next, чтобы создать EXE.
Важно знать: скрипт запускается из временной папки, а не из папки, где лежит EXE. Строка вроде copy data.txt backup\ ищет файл в этой временной папке. Указывайте полные пути (%USERPROFILE%\Documents\data.txt) для файлов, которые скрипт читает или записывает вне пакета.
Способ 2: PowerShell в EXE с помощью ps2exe
ps2exe — бесплатный модуль PowerShell с открытым исходным кодом, опубликованный в официальной PowerShell Gallery. Он оборачивает скрипт .ps1 в небольшой EXE, который его запускает, и позволяет задать значок, версию и то, будет ли видно окно консоли.
- Откройте PowerShell (права администратора не нужны) и один раз установите модуль:
Если PowerShell предложит установить поставщик NuGet или доверять репозиторию PSGallery, ответьте Y.Install-Module ps2exe -Scope CurrentUser - Перейдите в папку со скриптом и соберите EXE:
Invoke-ps2exe .\script.ps1 .\script.exe - Полезные параметры:
-noConsole: без окна консоли (для скриптов с формами или окнами сообщений).-iconFile .\app.ico: значок EXE.-requireAdmin: запрашивает права администратора при запуске.-title "My Tool" -version "1.0.0": то, что Windows показывает в свойствах файла.
Предпочитаете окно командной строке? После установки модуля запустите Win-PS2EXE: это тот же инструмент с небольшой формой.
Другие скрипты: Python, AutoHotkey, Node.js
- Python:
pyinstaller --onefile script.pyсобирает один EXE в папкеdist. Добавьте--noconsoleдля программы с окном. - AutoHotkey: в установщик входит Ahk2Exe: щёлкните .ahk-файл правой кнопкой и выберите Compile Script.
- Node.js: новые версии (20 и выше) умеют собирать единый исполняемый файл приложения (см. страницу «Single executable applications» в документации Node.js).
Вам действительно нужен EXE?
Часто хватает более простого варианта:
- Ярлык. Щёлкните .bat-файл правой кнопкой мыши, выберите Send to → Desktop (create shortcut), затем задайте ярлыку значок в его свойствах. Двойной щелчок запускает скрипт.
- Запланированная задача. Если скрипт должен запускаться каждый день или при входе в систему, Планировщик заданий запускает .bat или .ps1 напрямую.
- Сам скрипт. Если те, с кем вы им делитесь, пользуются Windows, .bat-файл и так запускается двойным щелчком.
Три вещи, о которых молчит любой «конвертер BAT в EXE»
- Ваш код не скрыт. Эти инструменты хранят скрипт внутри EXE, часто открытым текстом. Любой может прочитать его обратно, например нашим String Extractor, который выводит читаемый текст из любого файла. Никогда не храните в нём пароли, токены или ключи.
- Антивирусы могут ругаться. Вредоносные программы используют те же обёртки, поэтому Windows Defender и SmartScreen могут предупреждать о совершенно безобидном EXE со скриптом. Помогает подпись сертификатом подписи кода, а Microsoft принимает сообщения о ложных срабатываниях для созданных вами файлов.
- EXE с сайта — это файл, который вы не можете проверить. Онлайн-конвертер возвращает файл, собранный на сервере, о котором вы ничего не знаете. Поэтому мы объясняем встроенный способ, а не предлагаем свой конвертер: с IExpress или ps2exe вы точно знаете, что попало в файл.
Получили EXE от кого-то и хотите узнать, что он запускает, прежде чем открыть? Прочитайте, как проанализировать EXE, не запуская его.
Бесплатные инструменты для остальной работы
Все они работают в вашем браузере: ваши файлы никуда не загружаются.