Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 将两个程序合并为一个?_Windows_Cmd_Exe_Portable Executable - Fatal编程技术网

Windows 将两个程序合并为一个?

Windows 将两个程序合并为一个?,windows,cmd,exe,portable-executable,Windows,Cmd,Exe,Portable Executable,如果我有两个windows可执行文件,我是否能够将它们组合成一个可执行文件,并按顺序运行它们 我试着用一个简单的程序把它们读入一个文件中,粗略而准确地完成了这项工作。结果是第二个程序运行了,但第一个程序从未运行过。下面我试图更好地解释这一点: C:\> bind.exe a.exe b.exe >out.exe b、 exe是在a.exe之后写入out.exe的 如果您查看out.exe,它看起来像是a.exe,然后是b.exe,完全用二进制编写,包括不应重复两次的标题和其他信息。

如果我有两个windows可执行文件,我是否能够将它们组合成一个可执行文件,并按顺序运行它们

我试着用一个简单的程序把它们读入一个文件中,粗略而准确地完成了这项工作。结果是第二个程序运行了,但第一个程序从未运行过。下面我试图更好地解释这一点:

C:\> bind.exe a.exe b.exe >out.exe
b、 exe是在a.exe之后写入out.exe的 如果您查看out.exe,它看起来像是a.exe,然后是b.exe,完全用二进制编写,包括不应重复两次的标题和其他信息。 运行它会导致运行b.exe,而不运行a.exe。我试着像这样改变顺序

C:\> bind.exe b.exe a.exe >out.exe
在这种情况下,运行了a.exe


基本上那个方法不起作用,所以我应该怎么做呢?我考虑过在遵循(windows可执行文件使用的)的格式并删除标题等内容时使用十六进制编辑器,但我觉得这是一个比较省时的方法

批处理文件

最简单的方法是使用批处理文件。然后一个接一个地跑

资源文件

另一种方法是创建第三个exe并将前两个作为资源添加到其中。在运行时,将资源写入文件夹并逐个运行

其他解决方案

这里还有其他建议


不,没有办法。你能得到的最接近的是一个包含其他两个程序的嵌入式副本的程序,并自动提取和运行它们。你为什么不编写一个批处理脚本,以正确的顺序执行它们?@pcluddite我可以这样做,但批处理文件看起来很难看,使用一个意味着我需要在一个文件夹中有3个文件,而不是一个自治文件。哈利约翰斯顿:你是说像自解压档案一样?你不需要批处理文件。从命令行类型
a和&b
-运行
a
,如果成功,则运行
b
。对于其他选项,请参见我认为我将采用“资源文件”路线。谢谢