批量 - 编辑文本文件中的特定行

时间:2013-08-23 05:00:39

标签: batch-file replace text-files edit

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

我知道这些值将在哪一行,所以我需要知道的是如何将该值更改为我指定的另一个值。我也必须使用字符串,而不仅仅是数字。

示例:

自:

4.7
0
check
0
1
0
0

要:

4.7
1
check
0
1
0
0

谢谢!

1 个答案:

答案 0 :(得分:3)

试试这个:

@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"

注意:对于以冒号:开头的行,这不起作用,如果需要,可能会修复此问题。