Ви написали пакетний файл або скрипт 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.
  • Потрібна іконка? Візьміть її з будь-якої програми за допомогою безкоштовного інструмента Вилучення іконок.

Спосіб 1: BAT в EXE за допомогою IExpress (вбудовано у Windows)

IExpress входить до Windows уже кілька десятиліть. Його створили для збирання невеликих інсталяторів: він пакує файли в один EXE, під час запуску EXE розпаковує їх у тимчасову папку і виконує команду. Цією командою може бути ваш пакетний файл.

  1. Натисніть Win + R, введіть iexpress і натисніть Enter.
  2. Виберіть Create new Self Extraction Directive file і натисніть Next.
  3. Виберіть Extract files and run an installation command.
  4. Дайте пакету назву (вона показується в заголовку вікна кожного повідомлення).
  5. Запит підтвердження: No prompt. Ліцензійна угода: Do not display a license.
  6. Packaged files: натисніть Add і виберіть свій файл .bat (і всі потрібні йому файли).
  7. Install Program: введіть cmd /c yourscript.bat вручну, з назвою вашого файлу. Якщо просто вибрати .bat зі списку, часто нічого не відбувається, бо IExpress не запускає пакетні файли напряму.
  8. Show window: Default, щоб бачити консоль, або Hidden, щоб працювати непомітно.
  9. Повідомлення про завершення: No message.
  10. Package name: виберіть, куди зберегти EXE, і позначте Hide File Extracting Progress Animation from User та Store files using Long File Name inside Package.
  11. 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, що його запускає, і дає змогу задати іконку, версію та чи з’являтиметься вікно консолі.

  1. Відкрийте PowerShell (права адміністратора не потрібні) і один раз встановіть модуль:
    Install-Module ps2exe -Scope CurrentUser
    Якщо PowerShell запитає, чи встановити постачальника NuGet або чи довіряти репозиторію PSGallery, дайте відповідь Y.
  2. Перейдіть до папки зі скриптом і зберіть EXE:
    Invoke-ps2exe .\script.ps1 .\script.exe
  3. Корисні параметри:
    • -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»

  1. Ваш код не приховано. Ці інструменти зберігають скрипт усередині EXE, часто як звичайний текст. Будь-хто може прочитати його назад, наприклад за допомогою нашого інструмента Вилучення рядків, який показує читабельний текст у будь-якому файлі. Ніколи не додавайте в нього паролі, токени чи ключі.
  2. Антивіруси можуть скаржитися. Шкідливі програми використовують ті самі обгортки, тож Windows Defender і SmartScreen можуть попереджати про цілком нешкідливий EXE зі скриптом. Допомагає підпис сертифікатом підпису коду, а Microsoft приймає повідомлення про хибні спрацьовування для файлів, які ви створили.
  3. EXE з вебсайту — це файл, який ви не можете перевірити. Онлайн-конвертер повертає файл, зібраний на сервері, про який ви нічого не знаєте. Саме тому ми пояснюємо вбудований спосіб, а не пропонуємо конвертер: з IExpress або ps2exe ви точно знаєте, що потрапило у файл.

Отримали EXE від когось і хочете знати, що він запускає, перш ніж відкрити? Прочитайте, як проаналізувати EXE, не запускаючи його.

Безкоштовні інструменти для решти роботи

Усі вони працюють у вашому браузері: ваші файли нікуди не завантажуються.

Отримайте іконку для свого EXE за допомогою Вилучення іконок