在Windows上是否有猫的替代品

时间:2008-09-13 01:28:06

标签: windows command-line scripting

我需要在Windows上使用*.bat脚本加入两个二进制文件。

我怎样才能做到这一点?

11 个答案:

答案 0 :(得分:432)

Windows type命令与UNIX cat的工作方式类似。

示例1:

type file1 file2 > file3

相当于:

cat file1 file2 > file3

示例2:

type  *.vcf > all_in_one.vcf  

此命令会将所有vcards合并为一个。

答案 1 :(得分:80)

您可以像这样使用copy /b

copy /b file1+file2 destfile

答案 2 :(得分:22)

如果您可以控制正在工作的机器,我强烈建议您安装GnuWin32。只需“全部下载”,让wget程序检索所有包。然后,您将可以访问cat,grep,find,gzip,tar,less和其他数百个。

GnuWin32是我在新Windows机器上安装的第一件事。

答案 3 :(得分:11)

无耻的PowerShell插件(因为我认为学习曲线是一种痛苦,所以在任何机会教学都有帮助)

Get-Content file1,file2

请注意type是Get-Content的别名,所以如果你更喜欢它,你可以写:

type file1,file2

答案 4 :(得分:3)

只需将dos copy命令与多个源文件和一个目标文件一起使用即可。

copy file1 + file2 attachedfile

您可能需要二进制文件的/ B选项

答案 5 :(得分:2)

在Windows 10的Redstone 1版本中,Windows为NTOS内核添加了一个真正的Linux子系统。我认为最初它的目的是支持Android应用程序,也许还有docker类型的场景。微软与Canonical合作并添加了一个实际的原生bash shell。此外,您可以使用apt包管理器来获取许多Ubuntu包。例如,您可以像在Linux机器上一样安装apt-get gcc来安装GCC工具链。

如果我在大学期间存在这样的事情,我想我可以在本机Windows bash shell中完成大部分Unix编程任务。

答案 6 :(得分:1)

如果您只想将文字附加到现有文件的末尾,则可以使用>>管。例如:

echo new text >>existingFile.txt

答案 7 :(得分:0)

如果你必须使用批处理脚本并且安装了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

非常感谢this answer的灵感。

答案 8 :(得分:0)

我尝试重新加入已在Linux服务器中拆分的tar归档文件。

我发现如果我在Windows的type中使用cmd.exe,它将导致文件以错误的顺序连接。(即type有时会先放XXXX.ad,然后放XXXX.ad XXXX.ac,XXXX.aa等...)

因此,我在GitHub https://github.com/sharkdp/bat上找到了一个名为bat的工具,该工具具有Windows版本,并且代码突出显示效果更好,重要的是,它在Windows上可以很好地重新加入tar存档! / p>

答案 9 :(得分:0)

所以我一直在寻找一种类似的方法来保存EOL字符,但发现没有办法,所以我尽力而为,发挥了自己的效用 这是Windows的本机cat可执行文件-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#构建的,可以随时使用防病毒软件进行扫描,并且可以根据要求提供源代码

答案 10 :(得分:-1)

Windows type命令有问题,例如512字节边界上的Unicode字符。尝试Cygwin的猫。