用批处理合并文本文文档?

一个文件夹内有多个文本文档需要合并,合并时 每行数据后面增加原文本的名称 例如
001.txt 里面有 1111 002.txt 里面有2222 合并后就是
1111 001
2222 002
这样的

可以使用批处理脚本来实现这个任务,以下是一个示例脚本:

@echo off

setlocal enabledelayedexpansion

set "output_file=output.txt"

set "extension=.txt"

set "delimiter= "

if exist "%output_file%" del "%output_file%"

for %%i in (*%extension%) do (

for /f "tokens=* usebackq" %%j in ("%%i") do (

echo %%j%delimiter%%%~ni >> "%output_file%"

)

)

echo "合并完成!"

pause

解释:

    setlocal enabledelayedexpansion:开启延迟变量扩展,以便在for循环中使用变量。

    set "output_file=output.txt":设置输出文件的名称。

    set "extension=.txt":设置要合并的文件的扩展名。

    set "delimiter= ":设置数据之间的分隔符。

    if exist "%output_file%" del "%output_file%":如果输出文件已经存在,则删除它。

    for %%i in (*%extension%) do:遍历所有带有指定扩展名的文件。

    for /f "tokens=* usebackq" %%j in ("%%i") do:遍历文件中的每一行。

    echo %%j%delimiter%%%~ni >> "%output_file%":将当前行的内容以及文件名写入输出文件。

    echo "合并完成!":输出完成提示。

    pause:暂停执行,直到用户按下任意键。

    将上述脚本复制到记事本中,然后将其另存为“merge.bat”(或者任何您想要的名称),并将其放置在包含要合并的文件的文件夹中。然后运行脚本,等待合并完成即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-19
您可以使用Windows自带的命令行工具,使用“for /r”命令实现合并多个文本文件。具体的操作步骤如下:
将所有要合并的文本文件放在同一个文件夹内,如D:\text文件夹;
打开“命令提示符”并进入要合并的文件夹内,如输入“cd /d D:\text”命令,进入D:\text文件夹;
在命令提示符中输入下面的命令,将所有文本文件合并成一个文件:
for /r %i in (*.txt) do type "%i" >> "%~ni.txt" && echo %~nxi >> "%~ni.txt"
执行命令后,所有的文本文件将被合并成一个txt文件,每个文件内容后带有文件名并保存在D:\text文件夹中;
如果要使用批处理文件进行操作,可以将上面的命令保存在txt文件中,然后将后缀名改为.bat并执行。
需要注意的是,上面的命令会合并文件夹中的所有txt文件,如果有其他类型的文件,需要在命令中的“(*.txt)”进行修改。此外,如果文本文档的编码格式不同,进行合并后可能会出现编码混乱的情况,可以使用第三方工具进行转换或手动修改。
第2个回答  2023-05-09

以下是使用 Windows 操作系统的批处理脚本合并文本文档的方法:

    打开记事本或其他文本编辑器,并创建一个新的批处理脚本文件。可以将其保存为 .bat 文件,例如:merge.bat。

    在脚本文件中输入以下命令来打开要合并的文本文档:

     for /r "%folder%" %%a in (*.txt) do (
    set file=%%a
    set file_name=!file:~0,-1!
    set file_count=!file:~1,-1!
    set /a line_count=!file_count!
    set /a line_num=!line_count!
    type "%file%" >> "!file_name!.txt"  )  

    这个命令会在指定文件夹内遍历所有的 .txt 文件,并将它们合并到一个名为 !file_name!.txt 的新文件中。在每个文本文件中,每行数据会被追加到文件的末尾。

    输入以下命令来设置要合并的文件夹的路径:

    set folder="C:\example\folder"  

    将 "C:\example\folder" 替换为要设置的路径。

    保存批处理脚本文件,并运行它。可以双击脚本文件或者在命令提示符中输入脚本文件的路径和名称来运行它。

    C:\example\folder\merge.bat  

    这将打开指定的文本文档,并将它们合并到一个名为 !file_name!.txt 的新文件中。

    请注意,要在批处理脚本中使用变量,必须在脚本文件中使用 set 命令来设置它们。在 set 命令中,使用双引号来括住变量名称,以表示对变量的引用。例如,set "var=value" 将设置变量 var 的值为 value。

第3个回答  2023-05-03

可以使用 Windows 自带的命令行工具“copy”来合并多个文本文档,具体方法如下:

    首先确保需要合并的文本文档都放置在同一个文件夹中。

    打开记事本(Notepad)或其他编辑器,并新建一个批处理文件(例如 merge.bat)。在该文件中输入以下内容:

    copy *.txt combined.txt

    其中,“*.txt”表示选择所有的txt文件进行复制操作,“combined.txt”表示合并后的文本文件名,可以自行修改。

    将批处理文件保存到文本文档所在的文件夹中,双击运行即可将所有txt文件合并成一个combined.txt文件。

    需要注意的是,通过以上方法合并文本文档时会直接覆盖掉之前已存在的combined.txt文件,因此要确保该文件不存在或备份好需要保留的旧文件。此外,在文本文档合并过程中可能会出现编码不一致等问题,可以在操作前备份好原有文件以便出现异常时恢复原始数据。

第4个回答  2023-04-19

以下是一个批处理脚本示例,它可以将文件夹中的文本文档合并,并在每行数据后面添加原文本的名称。

    打开记事本或其他文本编辑器。

    将以下代码复制并粘贴到文本编辑器中:

@echo off

setlocal enabledelayedexpansion

cd "%~dp0"

if exist "merged_output.txt" del "merged_output.txt"

for %%f in (*.txt) do (

for /f "usebackq delims=" %%l in ("%%f") do (

set "line=%%l"

echo !line! %%~nf >> "merged_output.txt"

)

)

echo Done.

pause

    将文件另存为扩展名为.bat的文件,例如:merge_txt.bat。

    将这个批处理文件(merge_txt.bat)放到包含多个文本文档的文件夹中。

    双击批处理文件(merge_txt.bat),运行脚本。

    合并后的文件将生成一个名为merged_output.txt的文本文档。

    这个批处理脚本将按照你的要求合并文本文件,并在每行数据后面添加原文本的名称。

相似回答