编写批处理文件以获取文本文件目录/搜索特定标记并在此之后插入一行

时间:2014-02-18 06:03:06

标签: batch-file

我需要从文件夹中读取一堆文本文件。为每个文本文件找到特定的标记,例如“Corolla”,并在标记后面插入一个新行。 假设文本文件如下:

first line
second line
a part of third line, Corolla, third line remaining
INSERT THE NEW LINE HERE
the rest of file. 

我是批处理文件的新手,对我来说很有挑战性。

由于

部分答案:

我可以使用以下代码,但是如果整行都有该令牌,则此代码仅查找令牌。我还需要找到令牌,如果它也在某些句子之间(子串)!

@echo off
set SrcFolder=C:\Input
set DstFolder=C:\Output
for %%a in ("%SrcFolder%\*.txt") do (
  (for /f "usebackq delims=" %%h in ("%%a") do (
    echo.%%h
    if "%%h" equ "Corolla" (
      echo THE NEW LINE
    )
  ))>"%DstFolder%\%%~nxa"
)

1 个答案:

答案 0 :(得分:2)

取代

     "%%h" equ "Corolla" (

(无论如何都会产生错误)

 echo %%h|findstr "Corolla" >nul&if not errorlevel 1 (

在每一行中查找文字“花冠”,如果找到则将errorlevel设置为0。请勿尝试if errorlevel 0,因为findstr始终将errorlevel设置为正整数,if errorlevel的{​​{1}}测试测试为n 或大于n