You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助read、grep、echo等工具在cmd.exe中逐行交错合并文件?

在cmd.exe中实现文件逐行交错合并的方案

要把File1.txt和File2.txt的对应行按Aaaaaaa1 Bbbbbbb1 Aaaaaaa2 Bbbbbbb2 Aaaaaaa3 Bbbbbbb3的格式合并到OUTCOME.txt中,我们可以借助cmd的for循环、延迟变量扩展来实现(注:cmd原生没有read命令,grep的功能可以用findstr替代,但这里用for /f读取文件更直接)。

具体实现脚本

创建一个批处理文件(比如merge.bat),内容如下:

@echo off
setlocal enabledelayedexpansion

:: 初始化计数器,用于记录文件行数
set "line_count=0"

:: 读取File1.txt的每一行,存入数组a
for /f "delims=" %%i in (File1.txt) do (
    set /a line_count+=1
    set "a[!line_count!]=%%i"
)

:: 重置计数器,读取File2.txt的每一行,存入数组b
set "line_count=0"
for /f "delims=" %%i in (File2.txt) do (
    set /a line_count+=1
    set "b[!line_count!]=%%i"
)

:: 拼接对应行的内容,生成输出字符串
set "result="
for /l %%n in (1,1,!line_count!) do (
    set "result=!result! !a[%%n]! !b[%%n]!"
)

:: 去除开头多余的空格,将结果写入OUTCOME.txt
echo!result:~1!> OUTCOME.txt

endlocal

脚本说明

  • @echo off:关闭命令回显,避免执行过程中显示冗余命令。
  • setlocal enabledelayedexpansion:启用延迟变量扩展,确保循环内的变量能实时更新和读取。
  • 两个for /f循环分别读取两个文件的每一行,存入对应的数组(a和b),同时记录文件的行数。
  • 最后一个for /l循环遍历行数,将数组中对应位置的内容按A行 B行的顺序拼接,最终去除开头的空格后写入OUTCOME.txt。

使用方法

  1. 将上述脚本保存为merge.bat,放在和File1.txt、File2.txt同一目录下。
  2. 双击运行merge.bat,或者在cmd中切换到该目录后执行merge.bat即可。

内容的提问来源于stack exchange,提问作者Bich Le The

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:38:22