如何创建读取文件并将子字符串写入另一个文件的批处理文件?

时间:2013-01-22 09:48:05

标签: parsing batch-file substring

我目前有一个导出的文本文件(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命令的单独代码,但是我试图将它们放在一起而陷入困境!

致以最诚挚的问候,

安德鲁

1 个答案:

答案 0 :(得分: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