2013-08-23 90 views
1

例如,行號2讀取:「0」(不含引號)。我想將0更改爲1,而不更改文本文件中的其他任何內容。批處理 - 編輯文本文件中的指定行

我知道這些值將在哪一行,所以我需要知道的是如何將該值更改爲我指定的另一個值。我也必須對字符串進行相同的處理,而不僅僅是數字。

例子:

來源:

4.7 
0 
check 
0 
1 
0 
0 

要:

4.7 
1 
check 
0 
1 
0 
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" 

注:本doen't正常工作開始用冒號:線,如果需要的話,這可能是固定的。

+0

沒錯,但不能編輯原始文本文件,還是需要創建新文件? – magicbennie

+4

總是需要一個'temp'文件,你不能寫入原始文件。但是你可以在結尾放置下面的代碼:'MOVE「%file%.new」「%file%」',這會替換舊文件。 – Endoro

相關問題