我租用了一个软件,可以将文档保存在文本文件中。
每个问题都被格式化为群集,标签放在方括号中,后跟与该问题相关的值列表,按照单独的行进行,如下所示:
[Q1]
Answer = yes
Source = A
Value = 20
[Q2]
Answer = yes
Source = B
Value = 20
[Q3]
Answer = yes
Source = A
Value = 20
我想要做的是删除Source = B的任何完整文本块,以便上面示例的输出文本文件读为:
[Q1]
Answer = yes
Source = A
Value = 20
[Q3]
Answer = yes
Source = A
Value = 20
基本上省略
[Q2]
Answer = yes
Source = B
Value = 20
可以这样做吗?如果是这样,最好的方法是什么
答案 0 :(得分:0)
下面的批处理文件是精确地编写的,以解决此问题,因此它将 解决任何其他类似的问题。
@echo off
setlocal EnableDelayedExpansion
set "Source = B"
for /F "delims=" %%a in (input.txt) do (
set "line=%%a"
if "!line:~0,1!" equ "[" (
if "!Source !" neq " B" (
echo !label!
for %%v in (Answer Source Value) do echo %%v =!%%v !
echo/
)
set "label=%%a"
) else (
set "%%a"
)
)
if "!Source !" neq " B" (
echo !label!
for %%v in (Answer Source Value) do echo %%v =!%%v !
echo/
)