DOS findstr查找引号之间带有文本的所有行

时间:2013-03-27 21:11:38

标签: regex dos findstr

如何使用findstr检索多行之间的所有文本? 例如,我有:
线路1
2号线
3号线
“第4行 5号线 6号线 “
7号线 第8行

我需要返回
第4行 5号线 第6行

1 个答案:

答案 0 :(得分:0)

使用您的样本数据......这是我能够在没有太多精力的情况下获得的。

'file'txt'包含您的数据......

@echo off
setlocal enabledelayedexpansion

set quote=

for /f "tokens=*" %%a in (file.txt) do (
  set str=%%a
  set str=!str:"=:!

  if not "!str!"=="!str::=!" (
    if defined quote (
      set quote=
      for %%b in (^"%%a) do set str=%%~b
      if not "!str!"=="" if not "!str: =!"=="" echo !str!
    ) else (
      set quote=1
      for %%b in (%%a^") do set str=%%~b
    )
  )

  if defined quote (
    if not "!str!"=="" if not "!str: =!"=="" echo !str!
  )
)