在Windows上替换了猫

问题描述 投票:0回答:11

我需要在Windows上使用

*.bat
脚本加入两个二进制文件。

我怎么能实现?

windows command-line scripting
11个回答
508
投票
type

命令与unix相似。

示例1:


cat

等于:

type file1 file2 > file3

示例2:

cat file1 file2 > file3

该命令将将所有VCARD合并为一个。

您可以使用
type *.vcf > all_in_one.vcf

这样:


94
投票

如果您可以控制工作的机器,我强烈建议您安装

Gnuwin32
。只需“下载全部”,然后让WGET程序检索所有软件包。然后,您将可以访问猫,grep,查找,gzip,tar,更少和数百个。

GNUWIN32是我在新Windows Box上安装的第一件事。

24
投票

无用的PowerShell插头(因为我认为学习曲线是一种痛苦,所以教任何机会可以帮助您) copy /b file1+file2 destfile

注意,

Get-Content file1,file2

17
投票

type


仅使用多个源文件和一个目标文件使用DOS复制命令。

type file1,file2

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

8
投票
在Windows 10的Redstone 1版本中,Windows为NTOS内核添加了一个真正的Linux子系统。 我认为最初是为了支持Android应用程序,甚至是Docker类型的方案。 Microsoft与Canonical合作,并添加了一个实际的本机bash壳。 另外,您可以使用APT软件包管理器获取许多Ubuntu软件包。 例如,您可以像在Linux Box上一样进行APT-GET GCC安装GCC工具链。

如果我上大学时存在这样的事情,我认为我可以在本机Windows bash shell中完成大多数Unix编程任务。

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

copy file1+file2 appendedfile

2
投票

因此,我正在寻找一种类似的解决方案,以保留EOL炭,发现没有办法 这是Windows的本机猫-Https://mega.nz/#!6avgwqhl!qj1sxx -tltpbkpiux__iqdgkaifmb21ghlferhnoawk


1
投票

我称其为尖锐的猫,因为它使用c#构建,可以随意使用防病毒软件和源代码扫描。

我尝试重新加入已拆分在Linux服务器中的TAR存档。


1
投票
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

中使用type,它将导致文件以错误的顺序加入。

SO,我在github
https://github.com/sharkdp/bat
中找到了一个名为

cmd.exe

的工具,它具有窗口构建,并且具有更好的代码突出显示,重要的是,它在Windows上可以重新加入Tar Archive!

0
投票
windows type命令有问题,例如,在512字节边界上使用Unicode字符。尝试Cygwin的猫

如果您必须使用批处理脚本并在此处安装Python是批处理和python中的一个

polyglot
type
如果保存为JOIN。BAT的使用将是:

bat

thanks也感谢this thisAnswer
为灵感而回答。

类型,get-content和Echo的问题是,他们按线路处理文件并将所有文件加载到内存中。当合并10-20个碎片文件1-2GB时,这可能是有问题的。 不幸的是,我对5-10分钟后在这里提供的所有解决方案感到厌倦(尽管有64GB RAM和I5 i5第14代CPU)。

0
投票

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())


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.