在特定行之后替换txt文件中的行

时间:2017-03-23 04:31:47

标签: batch-file text replace edit

下面的演示文件。在组[二]我想切换'启用组'介于0和0之间1,不影响文件的其余部分,包括行返回。

我发现的问题是有复制线; '启用群组'成为其中之一,所以我无法找到工作。

在这种情况下,编辑特定的LINE NUMBER不会起作用,因为即使所有文件都遵循此格式,组[3]也经常出现在不同的行上。

所有[abc]标题都是唯一的

我想尽可能只使用批次。感谢

; this is file information
; stuff
; last edited Thu Mar 23 01:13:18 2017

[general]
I/O = AB-1234
second line = 0
third line = 1

[i/o one]
enable group = 0
enable board = 0
memory size = 0

[two]
enable group = 0

[three]
enable group = 0
enable board = 0
memory size = 0

1 个答案:

答案 0 :(得分:0)

经过另一个坚实的日夜阅读和研究,我已经找到了方法!虽然对某些人来说看起来很简单,但对我来说这一切都很新鲜。基本上我正在搜索两个标题所在的行号并修改

之后的行
echo off
cls
set /p number=set 1 or 0: 

for /f "delims=:" %%a in ('findstr /i /n /c:"two" "test.txt"') do (
set /a line=%%a+1
) >nul

>"test.tmp" (
for /f "tokens=1* delims=:" %%a in ('findstr /v /n /c:"FileDoesNotContainThis" "test.txt"') do (
if "%%~a"=="%line%" (
echo Enable Group = %number%
) ELSE (
echo.%%b
)
)
)
MOVE "test.tmp" "test.txt" >nul

我对我写的内容有基本的了解,任何有兴趣帮助的问题