我需要创建一个脚本,将多个文本文件合并为一个。 我知道这很简单使用
type *.txt > merged.txt
但要求是将同一天的文件合并成day_YYYY-DD-MM.txt文件。我是Linux用户,Windows批处理对我来说很麻烦。这是Windows XP。
我需要创建一个脚本,将多个文本文件合并为一个。 我知道这很简单使用
type *.txt > merged.txt
但要求是将同一天的文件合并成day_YYYY-DD-MM.txt文件。我是Linux用户,Windows批处理对我来说很麻烦。这是Windows XP。
Windows type
命令与 UNIX 的 cat
命令类似。
示例 1:合并文件名(将 file1.csv 和 file2.csv 合并成 concat.csv)。
type file1.csv file2.csv > concat.csv
例子2:使用模式合并文件(将合并所有扩展名为csv的文件,并创建concat.csv)
当使用星号(*)连接所有文件时,请不要在目标文件中使用相同的扩展名(例如.csv)。 模式应该有一些差异,否则目标文件也会被视为合并的一部分。
type *.csv > concat_csv.txt
最基本的批处理文件中,将文件连接起来是用 'copy' 命令实现的。
copy file1.txt + file2.txt + file3.txt concattedfile.txt
在Windows 7中,导航到存放文本文件的目录。在命令提示符中使用:
copy *.txt combined.txt
其中combined.txt
是新创建的文本文件的名称。
将所有需要复制的文件放置在单独的文件夹中,为了方便,可以将它们放在 C 盘。
打开命令提示符 - 在 Windows 中键入 cmd ,选择命令提示符。
您可以看到默认目录指向 - 例如:C:[Folder_Name]>。 使用 'cd [Folder_Name]' 命令更改目录以指向您放置要复制的文件的文件夹。
指向目录后 - 输入 'dir',它将显示文件夹中存在的所有文件,以确保一切就绪。
现在输入:'copy *.txt [newfile_name].txt' 然后按回车键。
完成!
所有单独文件中的文本都将被复制到 [newfile_name].txt 中。
copy file1.txt+file2.txt+file3.txt file123.txt
示例2(文件在同一文件夹中):
type *.txt > combined.txt
for /D %f in (folderName) DO type %f/filename.txt >> .\newfileoutput.txt
使用命令 "cat "input files" > "output files"" 可以在PowerShell中运行。PowerShell是当前Windows版本中首选的shell,因此它可以正常工作。此外,在处理大文件时,此方法也是以上答案中唯一能够正常工作的方法,而"type"或"copy"则会失败。
试试这个:
@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
你可以使用类型来完成它:
type"C:\<Directory containing files>\*.txt"> merged.txt
目录中的所有文件都将被追加到文件merged.txt
中。
copy
比type
快得多,但有时(对于大文件?)会在文件末尾添加一个SUB字符。因此,严格来说,它不像Unix中的cat
那样简单地连接文件。
因此,正确的答案是使用cat
- 要么在类似Git Bash的东西中(其中它具有与Unix相同的语法),要么在PowerShell中(其中它没有)。
copy
中包括了控制文件结尾标记的能力,使用/A
和/B
开关。默认情况下,它将/A
(^Z
=EOF)应用于输入文件,但如果在输入文件名之前出现/B
标志,则^Z
将被保留。每个单独的文件都可以通过其自己的开关进行控制。如果目标文件名有/A
,则会附加SUB。 - Magoo