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

如何通过批处理在txt文件含指定单词的行前后各插入一行内容

匹配指定内容行前后插入文本的批处理实现

以下是修改后可直接运行的代码:

@echo off
setlocal enabledelayedexpansion
:: 可自定义修改以下三个参数
set "search_key=rose"
set "insert_before=before"
set "insert_after=after"

for %%g in (*.txt) do (
    >"temp.txt" (
        for /f "usebackq delims=" %%h in ("%%~g") do (
            echo "%%h" | findstr /c:"%search_key%" >nul
            if !errorlevel! equ 0 (
                echo %insert_before%
                echo %%h
                echo %insert_after%
            ) else (
                echo %%h
            )
        )
    )
    move /y "temp.txt" "%%~g"
)
endlocal

关键逻辑说明

  • 开启延迟变量扩展enabledelayedexpansion,保证循环内部可以正常读取实时更新的errorlevel返回值
  • 调用findstr命令逐行匹配目标关键词,/c参数保证关键词包含空格时也能精准匹配,>nul屏蔽匹配过程的输出内容
  • 匹配成功时(errorlevel返回值为0)先输出前置插入内容、再输出原行、最后输出后置插入内容;未匹配到关键词的行直接输出原内容
  • 所有内容写入临时文件后,直接替换原txt文件完成修改

注意事项

  • 执行脚本前建议先备份目标txt文件,避免误操作导致内容丢失
  • 如果搜索关键词包含批处理保留特殊字符(如&、|、<等),需要给特殊字符前加^转义
  • 当前实现默认跳过原文件中的空行,如有保留空行的需求,可额外调整内层for /f的参数逻辑

内容的提问来源于stack exchange,提问作者Batch1234

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:51:00