2013-08-23 2 views
1

Например, строка номер 2 читает: «0» (без кавычек). Я хочу изменить это значение 0 на 1, не изменяя ничего в текстовом файле.Batch - редактировать указанную строку в текстовом файле

Я знаю, в какой строке будут использоваться значения, поэтому мне нужно знать, как изменить это значение на другое значение, которое я укажу. Мне также придется к тому же со строками, а не только цифрами.

Пример:

От:

4.7 
0 
check 
0 
1 
0 
0 

To:

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

Смежные вопросы