【发布时间】:2015-07-05 05:44:12
【问题描述】:
如果我有两个 Windows 可执行文件,我可以将它们组合成一个可执行文件,并依次运行它们吗?
我尝试使用一个简单的程序将它们读入一个,从而粗略而准确地做到这一点。结果是第二个程序运行了,但第一个程序从未运行。下面我试图更好地解释这一点:
C:\> bind.exe a.exe b.exe >out.exe
b.exe 在 a.exe 之后写入 out.exe 如果您查看 out.exe,它看起来像 a.exe THEN b.exe,完全用二进制编写,包括标题和其他不应重复两次的信息。 运行它会导致 b.exe 正在运行,而 a.exe 不会运行。我试着像这样切换顺序
C:\> bind.exe b.exe a.exe >out.exe
在这种情况下运行 a.exe。
基本上那个方法不起作用,那我该怎么做呢?我考虑在遵循this explanation of the windows PE format(用于Windows可执行文件的格式)的格式并删除标题等时使用十六进制编辑器做一些事情,但我觉得采取的耗时较少。
【问题讨论】:
-
不,没有办法做到这一点。您可以获得的最接近的是包含其他两个程序的嵌入式副本的程序,并自动提取并运行它们。
-
你为什么不写一个批处理脚本以正确的顺序执行它们?
-
@pcluddite 我可以这样做,但批处理文件看起来很难看,使用一个意味着我需要在一个文件夹中有 3 个文件,而不是一个自治文件。所以美学。
-
@HarryJohnston 你的意思是像一个自解压档案?
-
您不需要批处理文件。从命令行类型
a && b- 这运行a,如果成功运行b。其他选项见ss64.com/nt/syntax-redirection.html
标签: windows cmd exe portable-executable