使用findstr从带有双引号的字符串中提取一行

时间:2013-10-09 12:42:45

标签: batch-file findstr

首先感谢你对这个网站,我是一个可怕的编码器,因此我需要你的帮助来制作一个批处理脚本,我尝试通过使用findstr从文本文件中仅提取包含“在该行中的复制”的行实际上没有那个空格和双引号。但它也会提取“复制和帮助”这一行,我不需要。

示例:

我的文字包含(source.txt)

a
asd Copy and help with these command prompt:
a
  asd Copy "c:\.." a b c(white space)
a
 asd Copy and help with these command prompt:
Copy "d:\.." a c c(tab space)
avs
    Copy "e:\.." a a c
vvddf

输出文件(op.txt)(应该是)

Copy "c:\.." a b c
Copy "d:\.." a c c
Copy "e:\.." a a c

在我的原始代码之后,我尝试使用

findstr /c:"Copy ^"" > op.txt
,但这不起作用。让findstr知道搜索包含
Copy "
复制[空格] [双引号]

的行

更新了部分

首先关闭我所需的批处理脚本是在foxidrive的帮助下工作的。还有一些调整要做,但我会将其作为另一个问题发布。这个问题得到了回答。

这是我目前的更新代码。

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET source="details.txt"
IF EXIST %source% (
  FIND /i "copy " <%source% |FIND "\" >op.txt
) ELSE (
  Exit
)

感谢foxidrive开始并解决我的第一个问题。

对不起我的英语,它像我的编码一样糟糕

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用此

find ":\" <source.txt  >op.txt

或者这是另一种解决方法:

find ":\" <source.txt |find /i "copy " >op.txt