批处理 - 编辑文本文件中的指定行

Posted

技术标签:

【中文标题】批处理 - 编辑文本文件中的指定行【英文标题】:Batch - edit specified line in text file 【发布时间】:2013-08-26 01:02:54 【问题描述】:

例如,第 2 行显示为:“0”(不带引号)。我想将该 0 更改为 1,而不更改文本文件中的任何其他内容。

我知道值将在哪一行,所以我只需要知道如何将该值更改为我指定的另一个值。我也必须对字符串进行相同的处理,而不仅仅是数字。

例子:

发件人:

4.7
0
check
0
1
0
0

收件人:

4.7
1
check
0
1
0
0

谢谢!

【问题讨论】:

【参考方案1】:

试试这个:

@ECHO OFF &SETLOCAL
SET "file=file"
SET /a Line#ToSearch=2
SET "Replacement=0"

(FOR /f "tokens=1*delims=:" %%a IN ('findstr /n "^" "%file%"') DO (
    SET "Line=%%b"
    IF %%a equ %Line#ToSearch% SET "Line=%Replacement%"
    SETLOCAL ENABLEDELAYEDEXPANSION
    ECHO(!Line!
    ENDLOCAL
))>"%file%.new"
TYPE "%file%.new"

注意:这不适用于以冒号开头的行 :,如果需要,这可能会被修复。

【讨论】:

对,但是原文本文件是不能编辑的,还是需要新建一个? 始终需要temp 文件,您无法写入原始文件。但是你可以把下面的代码放在最后:MOVE "%file%.new" "%file%",这会将旧文件替换为新文件。

以上是关于批处理 - 编辑文本文件中的指定行的主要内容,如果未能解决你的问题,请参考以下文章

易语言读取文件

shell 脚本——第七节课 三剑客之sed语句

AS3:如何将数据网格中的数据保存到逐行文本文件中?

Vim文本编辑器

linux三剑客-sed

批处理 - 编辑文本文件中的指定行