bat如何生成exe文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat如何生成exe文件相关的知识,希望对你有一定的参考价值。

请问bat如何生成exe文件,请那位大虾指点指点,小弟不胜感激!

第一种方法:
可以先把bat转换为com,然后把com转换为exe:
有2个工具分别是bat2com.exe和com2exe.exe,能实现上面的要求。
用法是:(在命令提示符下)
bat2com.exe 待转换的bat.bat
com2exe.exe 待转换的bat.com
上面第一行生成 待转换的bat.com,第二行生成 待转换的bat.exe,即最后想得到的exe文件。
这两个工具的压缩包(仅10kB)地址是:
http://clubpic2.chinaren.com/uploadfile/200701/392/IGkRrTOD.rar

第二种方法:
Quick Batch File (De)Compiler (2MB左右,需安装)
下载地址:
http://p2s.newhua.com/down/HA_QuickBF2_CZ.RAR
参考技术A 用C语言system函数嵌套bat代码,编译即可,代码如下:
#include<stdlib.h>
int main()
system("你要执行的bat命令");
return 0;

如何使用 .bat 脚本按顺序启动 .exe 文件

【中文标题】如何使用 .bat 脚本按顺序启动 .exe 文件【英文标题】:How to make by-turn start of .exe files using the .bat-script 【发布时间】:2010-11-03 18:05:23 【问题描述】:

我有目录结构:

DIR
|-component_name
  |-source
  |-setup.exe
|-another_component_name
  |-source
  |-setup.exe
|-yet_another_component_name
  |-source
  |-setup.exe

and so on...

在像“component_name”这样的每个目录中,我都有setup.exe 文件,它将当前组件安装到Delphi 中的调色板组件中。我需要制作DIR/setup.bat 文件,该文件将在DIR 的每个组件目录中依次启动setup.exe

提前谢谢你。

【问题讨论】:

【参考方案1】:

我猜当你说“by-turn”时,你的意思是“一个接一个”(即,执行第一个 setup.exe,让它完成,执行第二个 setup.exe,让它完成,等等)。

如果 setup.exe 基于控制台,那么您可以直接调用您的 .EXE。每个 setup.exe 都将附加到 .BAT 文件的控制台窗口,因此在 setup.exe 完成之前阻止其执行。类似于Bubbafat给出的for循环示例:

for /f %%i in ('dir /b /s setup.exe') do %%i

但是,如果 setup.exe 基于 gui,那么您将不得不使用 CALL 命令。这将导致 .BAT 文件在执行更多命令之前等待被调用进程终止:

for /f %%i in ('dir /b /s setup.exe') do call %%i

现在,如果我误解了您,并且您的 EXE 是基于控制台的,并且您想同时执行它们而不是等待它们依次完成,那么您可以使用 START 命令。这将为每个 EXE 打开一个新的控制台窗口。

for /f %%i in ('dir /b /s setup.exe') do start %%i

注意:从“for /r”类型循环更改为“for /f”,因为它只会返回现有路径(与“for /r”不同,它会生成可能不存在的路径)。

【讨论】:

谢谢!!! for /r %%i in (setup.exe) do %%i 工作正常!是的,setup.exe 是基于控制台的,但我还需要从每个目录“一个接一个”(setup.exe 所在的位置)运行 Uninstall.bat。例如,如何使用 uninst.bat 脚本来制作它?我已阅读 ***.com/questions/649634/ 但我不明白如何在循环中从另一个 bat 运行 .bat。请帮忙。 只需将“setup.exe”替换为“uninst.bat”即可。例如:for /f %%i in ('dir /b /s uninst.bat') do %%i 对不起,我忘了说 uninst.bat 只包含这个字符串:“setup.exe” /uninstall 所以我需要从另一个 .bat 循环运行 .bat 并且最后 .bat 使用密钥执行 .exe...【参考方案2】:

示例:

for /f %%i in ('dir /s /b setup.exe') do (
%%i
)

【讨论】:

【参考方案3】:

我想您是在问“如何运行目录树中的每个 setup.exe?”。

如果事先知道该列表,您可以创建一个批处理文件,让程序一个接一个地运行。例如

component_name\setup.exe
another_component_name\setup.exe
yet_another_component_name\setup.exe

但如果列表不是静态的,并且它们运行的​​顺序并不重要,那么您可以在批处理文件中使用 for 循环,如下所示:

for /F %i in ('dir /B /S *.log') do %i

要预览这会做什么,请在最后一个“%i”之前添加一个“echo”,例如:

for /F %i in ('dir /B /S *.log') do echo %i

如果这不是您的意思,请澄清您的要求,因为不清楚。

【讨论】:

> 我想您是在问“我如何运行 > 目录树中的每个 setup.exe?”。确切地!我需要的是脚本: for /F %i in ('dir /B /S *.exe') do start %i pause 但我还需要从每个目录(setup.exe 所在的位置)运行 Uninstall.bat。我怎样才能用这个 .bat 脚本做到这一点?我已经阅读了[帖子]:***.com/questions/649634/…,但都是一样的 - 我无法理解。【参考方案4】:

使用这个:

for /r %i in (setup.exe) do %i

(或者,如果您将其嵌入到 .bat 文件中,请记住将 % 符号加倍)

【讨论】:

以上是关于bat如何生成exe文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将bat批处理文件加壳转换成exe文件

怎样将写好的.py文件生成exe可执行文件

delphi 7 生成 调用 bat文件的exe文件

将exe文件生成bat的vbs脚本

如何将bat批处理文件加壳转换成exe文件

用exescript生成的exe文件为啥老是被360杀毒报木马?