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文件的主要内容,如果未能解决你的问题,请参考以下文章