Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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 使用jeb';的非链接文件;这是个棘手的方法_Windows_Batch File - Fatal编程技术网

Windows 使用jeb';的非链接文件;这是个棘手的方法

Windows 使用jeb';的非链接文件;这是个棘手的方法,windows,batch-file,Windows,Batch File,编辑:我的基本问题(没有我需要解决的特定设置,如我在原始帖子中所述): bin文件。bin是由二进制文件和文本文件连接而成的文件。包含的文本文件仅包含以特定字符串开头的行,例如,;;;;= 使用批处理文件: findstr /v "^;;;===,,," "BinFile.bin" > output.bin 生成一个输出bin文件,其中文本文件被完全删除 如何使用findstr(或另一个dos命令)不仅删除以指定字符串开头的所有行,而且删除第一行之前的bin部分(即文本文件之前的完整二进

编辑:我的基本问题(没有我需要解决的特定设置,如我在原始帖子中所述):

bin文件。bin是由二进制文件和文本文件连接而成的文件。包含的文本文件仅包含以特定字符串开头的行,例如,;;;;=

使用批处理文件:

findstr /v "^;;;===,,," "BinFile.bin" > output.bin
生成一个输出bin文件,其中文本文件被完全删除

如何使用findstr(或另一个dos命令)不仅删除以指定字符串开头的所有行,而且删除第一行之前的bin部分(即文本文件之前的完整二进制部分)?

copy /b aBat2ExeFile.exe + /a delimiter.bat + /b myBinaryFile.bin /b combined.exe


>>我的原始帖子:

jeb发明了一种使用Windows本机工具连接文件的方法,这些工具可以使用本机工具(以特定方式)不连接。他的解决方案很巧妙

使用batchBin.bat:

;;;===,,,@echo off
;;;===,,,echo line2
;;;===,,,findstr /v "^;;;===,,," "%~f0" > output.bin
;;;===,,,exit /b
键是findstr命令,它输出所有不以;;;==,,,开头的行,,,。 由于它们都是标准的批定界符,因此可以以任意组合作为批处理文件中任何命令的前缀。”

因此,myBinaryFile.bin可以从组合的.bat中提取出来–只能通过本机工具

我的问题:

在jeb的示例中,组合文件是批处理文件,因为copy命令中的第一个文件是批处理文件jeb的巧妙方法是否也可以用于以下任务,其中合并的文件将是combined.exe,一个exe文件?

copy /b aBat2ExeFile.exe + /a delimiter.bat + /b myBinaryFile.bin /b combined.exe
其中delimiter.bat类似于:

;;;===,,,REM
aBat2ExeFile.exe将是一个批处理文件(aBat2ExeFile.bat)转换为exe,使用findstr的技巧与batchBin.bat类似,但结果是

[...] > output.exe
在aBat2ExeFile.bat中,应使用findstr,结果是combined.exe的所有行在“;;;;==,”行之前,包括“;;;;;==,”,,,REM'将被忽略,output.exe将再次等于myBinaryFile.bin

我认为这个概念是正确的。但是如何在aBat2ExeFile.bat中实现这一点呢

编辑:我的问题可以简化(上述框架不是必需的):
jeb使用的findstr方法如何适应处理二进制文件的方式,从而不仅使以“;;;==,,”开头的行但是,第一行前面的所有行都被“忽略”

我敢打赌您没有将批处理文件转换为.exe!您更有可能拥有一个container.exe文件,该文件在运行时提取并运行批处理文件。Compo:Hm?“您还没有转换批处理文件…”-这是什么意思?我想你误解了这个概念。如果您参考我的anBatExeFile.exe:这应该是一个bat转换为exe,例如使用bat2exe工具。正如我所说,您被愚弄了,
bat2exe
创建了一个容器
.exe
文件,用于提取和运行批处理文件。因此,我认为没有理由不能使用另一个实用程序来创建包含所有文件的自解压可执行文件。但我正在为一个具体问题研究另一个棘手的解决方案,相信我,我在帖子中描述的概念将是完美的。然而,这并不是我问题的重点。这是绝对相关的,因为你所说的exe不是你的批处理文件,它是一个与你试图创建的文件非常相似的文件,一个在运行时“不关联”的文件。
copy /b aBat2ExeFile.exe + /a delimiter.bat + /b myBinaryFile.bin /b combined.exe