Делаем bat-ник с иконкой

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

До сих пор я использовал BatToExe. Но моему антивирусу она не понравилась, а аналогов как-то и не нашлось.

И вот подумал я почему бы не написать самому. Делов то. Нужна программка на сях для запуска батника и к ней прикрутить иконку. Звучит просто. Скачал eclipse-cpp и… обосрался. Полтора дня искал какой-нибудь туториал о том, как иконку там накрутить. Безрезультатно. Но случайно наткнулся на скрипт, который всё делает без этой шлабуды от фонда затмения.

Всё что мне для этого нужно:

1. Скачать и установить компилятор

Качаем установщик MinGW и запускаем его. Если нужно меняем место установки и нажимаем Continue.
Отмечаем для установки mingw-32-base и mingw-gcc-g++.

После этого: Installation -> Apply Changes. В открывшемся окне жмем Apply и ждем пока загрузятся и установятся компоненты.

Когда установка закончена, качаем msys. Думаю, при установке сложностей не возникнет.

Далее обновляем PATH. У меня получилось так: C:\MinGW\bin\;C:\msys\1.0\bin\

2. Написать пару скриптов и код

    1. Создаём папку скажем E:/bat. И там же следующие файлы:
    2. icon.rc
    3. Файл с нужной иконкой exe.ico
    4. C++ код в файле runBat.cpp:
    5. Тестовый bat-ник test.bat. Например:
    6. Ну и скрипт для компиляции compile.bat:

Когда всё готово запускаем compile.bat и ищем runBat.exe в нашей папке E:\bat.

На мой взгляд очень просто. К тому же скрипт позволяет кастомизировать и автоматизировать создание ехе-шников для многих bat-файлов. Как вариант можно “запихнуть” содержимое bat-файла в срр и при запуске ехе-шника тот бы делал bat-файл в темпе и пускал его. Можно bat-файлы самому размещать в нужном месте, если оно относительно или меняться не будет.

Дальше при желании можно сделать простую UI-ку и получить вполне себе новую тулзу BatToExe (без вирусов).