Windows批处理 - 将多个文本文件连接成一个

时间:2015-05-26 18:41:28

标签: windows batch-file scripting

我需要创建一个脚本,将多个文本文件连接成一个。 我知道它的使用简单

type *.txt > merged.txt

但要求是"将同一天的文件连接到文件day_YYYY-DD-MM.txt"我是linux用户,windows批处理对我来说很难。

编辑:Windows XP

9 个答案:

答案 0 :(得分:26)

最基本的是,批处理文件中的连接文件是通过' copy'来完成的。

copy file1.txt + file2.txt + file3.txt concattedfile.txt

答案 1 :(得分:14)

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

示例1:与文件名合并(这将合并file1.csv和file2.csv以创建concat.csv)

type file1.csv file2.csv > concat.csv

示例2:合并具有模式的文件(这将合并所有具有csv扩展名的文件并创建concat.csv)

type  *.csv > concat.csv

答案 2 :(得分:7)

将所有需要复制的文件放在一个单独的文件夹中,以方便将它们放在c盘中。

打开命令提示符 - 窗口>键入cmd>选择命令提示符。

您可以看到指向的默认目录 - 例如:C:[Folder_Name]>。 使用“cd [Folder_Name]”命令将目录更改为指向要放置文件的文件夹。

指向目录后 - 键入'dir',显示文件夹中的所有文件,只是为了确保所有文件都在原地。

现在输入:'copy * .txt [newfile_name] .txt'并按Enter键。

完成!

单个文件中的所有文本都将复制到[newfile_name] .txt

答案 3 :(得分:2)

我要重申其他一些要点,但包括第三个示例,当您要合并的文件夹中的文件包含文件时,该示例将提供帮助。

示例1(位于同一文件夹中的文件):

copy file1.txt+file2.txt+file3.txt file123.txt

示例2(位于同一文件夹中的文件):

type *.txt > combined.txt

示例3(文件存在于多个文件夹中,假定newfileoutput.txt不存在):

for /D %f in (folderName) DO type %f/filename.txt >> .\newfileoutput.txt

答案 4 :(得分:1)

试试这个:

@echo off
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

set /p temp= "Enter the name of text file: "
FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%temp%.txt

此代码要求您在“day_”之后设置文件名,您可以在其中输入日期。 如果您想将文件命名为实际日期,则可以执行此操作:

FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%yyyy%-%mm%-%dd%.txt

答案 5 :(得分:1)

您可以使用以下类型进行操作:

type"C:\<Directory containing files>\*.txt"> merged.txt

目录中的所有文件都将附加到文件merged.txt上。

答案 6 :(得分:0)

我们可以使用普通的CAT命令合并文件..

d产品:&gt; cat * .csv&gt; outputs.csv

答案 7 :(得分:0)

cat“输入文件”>“输出文件”

这在PowerShell(在当前Windows版本中是Windows首选的外壳)中有效,因此可以工作。这也是上面答案的唯一版本,可用于处理“类型”或“复制”失败的大文件。

答案 8 :(得分:0)

在Win 7中,在命令提示符下使用:

copy *.txt combined.txt