2

我目前有一个output.txt需要解析的 Clear-Case 命令导出的文本文件 ( )。它看起来像这样:

Comparing the following:
  R1.PROD.V1@\VOB_pvob
  R2.PROD.V1@\VOB_pvob
Differences:
>> M:\ACME_PROD\src\ACME@@
>> M:\ACME_PROD\src\ACME\file 2.txt@@
>> M:\ACME_PROD\src\ACME\file 1.txt@@
>> M:\ACME_PROD\src\ACME\file 3.txt@@

我想做的是使用 findstr 命令过滤包含在“ >>”和“ @@”字符串之间的字符串,以获取如下所示的输出文件(如果可能,请使用引号:

"M:\ACME_PROD\src\ACME"
"M:\ACME_PROD\src\ACME\file 2.txt"
"M:\ACME_PROD\src\ACME\file 1.txt"
"M:\ACME_PROD\src\ACME\file 3.txt"

我是编写批处理文件的新手,所以我不知道从哪里开始。我设法找到了可以循环遍历文本文件行和 findstr 命令的单独代码的代码,但是我在尝试将它们放在一起时遇到了困难!

最好的祝福,

安德鲁

4

1 回答 1

2

干得好

setlocal enabledelayedexpansion
for /f "skip=1 tokens=* delims=> " %%a in ('"findstr /r [\w^>*] output.txt"') do (
set line=%%a
set line=!line:@=!
echo "!line!" >>new.txt
)

过滤后的字符串将输出到new.txt.

于 2013-01-22T10:55:39.383 回答