我前几天发表了一篇文章“C/C++中一次性执行多个DOS命令”,那篇文章里介绍了如何在一个EXE程序中执行多个DOS命令。

以那篇文章中的技术为核心,对其扩展就写出了自动将BAT转换为EXE的程序,实现的思路很简单:

  1. 将原来代码中直接赋值到字符串变量中的BAT脚本,改为读取BAT文件,并将其输出到一个头文件里;
  2. 原来代码的其余部分保持不变,只是通过include将转换后的头文件包含进来,此时如果要求不高的话,其实就已经是可以使用了;
  3. 但是一个EXE文件一般都有自己的图标、版本号、厂商、版权等信息,于是又参考DevCpp的makefile做了一些处理,使得生成的EXE可以有这些信息,为了便于以后做图形界面,这些信息都用INI文件保存,这样以后图形界面上只要把配置参数存到INI文件里,再执行转换命令就可以了;

总之,绝大部分都是些琐碎的工作,只要耐心点,没啥技术难度。

代码在github: https://github.com/tywali/Bat2ExeConverter

下面对代码结构进行一些简单说明:

  1. prepare.cpp,初始化编译用的中间目录,根据INI文件的配置生成资源文件,拷贝图标文件到编译目录;
  2. compile.cpp,对编译目录中的代码进行编译,生成转换后的EXE;
  3. main.cpp,程序入口;

使用方法:

  1. 编译需要MinGW环境,可自行下载配置,或者到DevCpp官网下载包含MinGW的DevCpp,https://sourceforge.net/projects/orwelldevcpp/
  2. 下载DevCpp后,可在安装目录中找到MinGW64(我的机器是64位的,因此是这个目录,32位机器没有验证),将MinGW64\bin添加到系统的PATH参数下,否则编译时会找不到编译器;
  3. 将上面github中的的代码clone下来,进入bin目录,执行命令:
    Bat2Exe example.bat

    这样就可以了。

如果想要配置EXE的图标、版本等信息,可以打开bin目录下的compile.ini,对参数进行配置即可,参数很简单,看名字就知道是什么意思了,不确定的自己改一改,多编译几次也就明白了。

欢迎大家下载使用,如果有问题可在这里或者在github上提出,我会尽力解决的。

自动将BAT文件转换为EXE相关推荐

  1. 如何将.py文件转换为.exe

    如何将.py文件转换为.exe 提前下载好pyinstaller模块 1:在空白处按住shift键,然后单击鼠标右键这时会弹出一个小界面选择:"在此处打开powershell窗口(S)&qu ...

  2. 如何将Python文件转换为EXE

    这是本教程的可视版. 将Python转换为EXE 在本文中,您将学习如何将.py文件转换为.exe文件. 同样,请按照以下步骤操作. 步骤1: 安装库pyinstaller. 在命令提示符下键入以下命 ...

  3. 开机后自动执行bat文件中的python程序,自动登录软件进行功能配置

    文章目录 1.bat文件 2.使用pyautogui进行自动点击 1.bat文件 bat文件的作用是可以和cmd命令行一样自动执行,将其放置到开机自启动文件夹中,便可以实现开机后的自动执行. 开机自启 ...

  4. windows10如何开机自动运行bat文件

    在 Windows 10 中可以通过以下步骤来设置 bat 文件开机自动运行: 打开"运行"对话框,按 Win + R 键. 输入 shell:startup. 在"启动 ...

  5. windows开机自动运行bat文件

    将bat文件放在:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup下,开机即可自 ...

  6. python3.5把py文件转换为exe文件(by PyInstaller)

    配置系统变量 下载PyInstaller 安装PyInstaller 使用PyInstaller生成exe文件 可能遇到的问题 1.配置系统变量 安装需要用到pip工具,该工具在3.5版本的pytho ...

  7. python exe文件运行依赖环境_python将py代码文件转换为EXE脱离环境运行

    如何将python将py代码文件编译成为EXE文件,让其能够脱离python环境独立运行? 方法是有的,下面大家请看如何来操作. 我的环境是VS2017,同时安装了ironpython 一.安装pyi ...

  8. 【我的渲染技术进阶之旅】Google开源的基于物理的实时渲染引擎Filament源码分析:在android中如何使用cmgen命令自动将.hdr文件转换为.ktx文件或者.rgb32文件等?

    文章目录 一.需求描述 1.1 为啥要学习cmgen命令 1.1 bug描述 1.1.1 运行错误描述:java.io.FileNotFoundException: envs/flower_road_ ...

  9. idea报错Cannot run program tomcat的catalina.bat文件或windows无法找到bat文件

    最先开始报错的是在idea里面启动tomcat服务器,如下: 首先不是文件内容问题,因为其他电脑使用相同bat文件都没问题,换了tomcat8和tomcat9都一样的错误.接着,我电脑双击打开cata ...

最新文章

  1. python 读下一行-Python-将前一行和下一行绑定到当前行。
  2. Apache Commons组件集合
  3. 实例源码_SpringBoot数据库源码解析Template实例化操作
  4. 【Apache POI】Java 读取Excel文件
  5. webpack 打包
  6. Spring Cloud Sleuth + Zipkin + RabbitMQ 监控微服务应用(二)
  7. servlet mysql 分页_Java基础94 分页查询(以MySQL数据库为例,Servlet技术)
  8. 苹果自研基带野心不死:给高通300多亿后,正洽购英特尔调制解调器业务
  9. 名企笔试:京东 2016 算法工程师笔试题(登楼梯)
  10. Ueberschall Elastik 3 for Mac - 弹性Loops音源采样器
  11. jQuery整理您的笔记----jQuery开始
  12. Java从入门到精通 第12章 类的封装、继承与多态
  13. 算法:螺旋矩阵算出N行N列的数组Spiral Matrix II
  14. VS快速定位文件、代码插件——DPack
  15. 面试总结——Java篇
  16. hbuildx制作app链接mysql_HBuilder制作的APP怎么连接SQLServer数据库,求大神指点一下,谢谢了!...
  17. Excel for mac 快速选中大量的数据
  18. 3小时GIS入门教程(一):为什么要学GIS
  19. Istio进入1.7版本,Service Mesh 落地还有什么障碍?
  20. 有哪些好用的微信群管理工具?

热门文章

  1. MyEclipse安装Flash Builder插件
  2. 使用Apache Traffic Server搭建CDN服务器
  3. matlab解坐标方程,用MATLAB求解亥姆霍兹方程的方法
  4. matlab 画折线图
  5. JAVA使用POI写入excel 工具类【通用】
  6. centos7安装bazel,亲测可行
  7. 认识世界和改造世界 [马原]
  8. kali linux连不上网,NAT模式静态ip解决问题
  9. Linux命令之查看系统负载
  10. jenkins 运行 jenkins-agent.jnlp 报错None of the protocols are enabled