我目前有一个从 Clear-Case 命令导出的文本文件 (output.txt
),我需要对其进行解析。它看起来像这样:
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 命令的单独代码,但我在尝试将它们放在一起时遇到了困难!
最诚挚的问候,
安德鲁
最佳答案
给你
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
中。
关于parsing - 如何创建读取一个文件并将子字符串写入另一个文件的批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455606/