【问题标题】:replacing line in txt file AFTER specific line在特定行之后替换txt文件中的行
【发布时间】:2017-08-15 11:46:17
【问题描述】:

演示文件如下。在组 [two] 中,我想在 0 和 1 之间切换“启用组”而不影响文件的其余部分,包括行返回。

我发现的问题是有复制行; “启用组”是其中之一,所以我无法让 findstr 工作。

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

所有 [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

【问题讨论】:

  • 你愿意付多少钱?不要将 SO 与免费的代码编写服务混淆!请学习How to Ask
  • @aschipfl 对不起,伙计并没有冒犯任何人的意思,我对此很陌生,只是在寻找方向。为我自己解决了。还是谢谢

标签: batch-file text replace edit


【解决方案1】:

在又一个扎实的日日夜夜阅读和研究之后,我找到了一个方法!虽然这对某些人来说似乎很简单,但这对我来说都是全新的。基本上我正在搜索两个标题所在的行号并修改之后的行

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

我对我写的内容有基本的了解,有任何问题很乐意提供帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2022-12-24
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    相关资源
    最近更新 更多