我需要创建一个脚本,将多个文本文件连接成一个。 我知道它的使用简单
type *.txt > merged.txt
但要求是"将同一天的文件连接到文件day_YYYY-DD-MM.txt"我是linux用户,windows批处理对我来说很难。
编辑:Windows XP
答案 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