Ви написали пакетний файл або скрипт 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 розпаковує їх у тимчасову папку і виконує команду. Цією командою може бути ваш пакетний файл.
- Натисніть 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, часто як звичайний текст. Будь-хто може прочитати його назад, наприклад за допомогою нашого інструмента Вилучення рядків, який показує читабельний текст у будь-якому файлі. Ніколи не додавайте в нього паролі, токени чи ключі.
- Антивіруси можуть скаржитися. Шкідливі програми використовують ті самі обгортки, тож Windows Defender і SmartScreen можуть попереджати про цілком нешкідливий EXE зі скриптом. Допомагає підпис сертифікатом підпису коду, а Microsoft приймає повідомлення про хибні спрацьовування для файлів, які ви створили.
- EXE з вебсайту — це файл, який ви не можете перевірити. Онлайн-конвертер повертає файл, зібраний на сервері, про який ви нічого не знаєте. Саме тому ми пояснюємо вбудований спосіб, а не пропонуємо конвертер: з IExpress або ps2exe ви точно знаєте, що потрапило у файл.
Отримали EXE від когось і хочете знати, що він запускає, перш ніж відкрити? Прочитайте, як проаналізувати EXE, не запускаючи його.
Безкоштовні інструменти для решти роботи
Усі вони працюють у вашому браузері: ваші файли нікуди не завантажуються.
Вилучення іконок
Витягайте вбудовані іконки з файлів EXE і DLL Windows.Вилучення рядків
Витягайте читабельні рядки з будь-якого двійкового файлу, як команда Linux strings.Порівняння тексту
Порівнюйте два тексти чи файли й виділяйте відмінності.GitHub Downloader
Завантажуйте файл, папку чи весь репозиторій із GitHub як ZIP.Отримайте іконку для свого EXE за допомогою Вилучення іконок