我需要*.bat
在Windows 上使用脚本将两个二进制文件连接在一起。
我该如何实现?
type
只能替换的部分cat
功能(由于Windows上二进制文件和文本文件的区别)。
我需要*.bat
在Windows 上使用脚本将两个二进制文件连接在一起。
我该如何实现?
type
只能替换的部分cat
功能(由于Windows上二进制文件和文本文件的区别)。
Answers:
Windows type
命令的工作方式与UNIX类似cat
。
范例1:
type file1 file2 > file3
等价于:
cat file1 file2 > file3
范例2:
type *.vcf > all_in_one.vcf
此命令会将所有vcard合并为一个。
type file1 file2 > file3 2>NUL
您可以这样使用copy /b
:
copy /b file1+file2 destfile
type
的注释中列出的明显问题,这不是已接受答案...除非此解决方案具有类似缺点,但不足以使人们注意到它们!
如果您可以控制工作所在的计算机,强烈建议安装GnuWin32。只需“全部下载”,然后让wget程序检索所有软件包。然后,您将可以访问cat,grep,find,gzip,tar,更少以及数百种其他内容。
GnuWin32是我在新的Windows机器上安装的第一批东西。
无耻的PowerShell插件(因为我认为学习过程很痛苦,因此随时学习可以有所帮助)
Get-Content file1,file2
请注意,这type
是Get-Content的别名,因此,如果您更喜欢它,可以编写:
type file1,file2
type file1 file2 > dest
,每个过程都在几秒钟内完成。
-Encoding UTF8
没有改变任何东西。
如果您必须使用批处理脚本并安装了python,则可以在批处理和python中找到一个polygot答案:
1>2# : ^
'''
@echo off
python "%~nx0" " %~nx1" "%~nx2" "%~nx3"
exit /b
rem ^
'''
import sys
import os
sys.argv = [argv.strip() for argv in sys.argv]
if len(sys.argv) != 4:
sys.exit(1)
_, file_one, file_two, out_file = sys.argv
for file_name in [file_one, file_two]:
if not os.path.isfile(file_name):
print "Can't find: {0}".format(file_name)
sys.exit(1)
if os.path.isfile(out_file):
print "Output file exists and will be overwritten"
with open(out_file, "wb") as out:
with open(file_one, "rb") as f1:
out.write(f1.read())
with open(file_two, "rb") as f2:
out.write(f2.read())
如果另存为join.bat,用法将是:
join.bat file_one.bin file_two.bin out_file.bin
也感谢这个答案的灵感。
我尝试重新加入已在Linux服务器中拆分的tar存档。
我发现如果type
在Windows操作系统中使用cmd.exe
,它将导致文件以错误的顺序连接(即type
有时会先放置XXXX.ad,然后放XXXX.ac,XXXX.aa等。)
因此,我bat
在GitHub https://github.com/sharkdp/bat中找到了一个名为Windows 的工具,该工具具有Windows版本,并且代码突出显示效果更好,重要的是,它在Windows上可以正常工作以重新加入tar存档!
因此,我一直在寻找一种类似的解决方案来保留EOL字符,却发现没有办法,所以我尽力而为,发挥了自己的效用。这是Windows的本机猫可执行文件-https :// mega。 nz /#!6AVgwQhL!qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk
Usage: cat file1 file2 file3 file4 -o output.txt
-o | Specifies the next arg is the output, we must use this rather than ">>" to preserve the line endings
我称它为Sharp-cat,因为它是C#内置的,可以随时使用防病毒软件进行扫描,并且可以根据要求提供源代码