Подтвердить что ты не робот

Пакет script для поиска и замены строки в текстовом файле без создания дополнительного выходного файла для хранения измененного файла

Я написал пакет script, чтобы найти и заменить строку в текстовом файле. Ниже приведен мой script.

@echo off &setlocal
set "search=%1"
set "replace=%2"
set "textfile=Input.txt"
set "newfile=Output.txt"
(for /f "delims=" %%i in (%textfile%) do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    echo(!line!
    endlocal
))>"%newfile%"
del %textfile%
rename %newfile%  %textfile%

Я могу успешно заменить слово.

Но я не хочу создавать Output.txt, а затем переименовываю его в исходный файл.

Пожалуйста, помогите мне в редактировании текстового файла без перенаправления вывода на новый файл.

4b9b3361

Ответ 1

@echo off 
    setlocal enableextensions disabledelayedexpansion

    set "search=%1"
    set "replace=%2"

    set "textFile=Input.txt"

    for /f "delims=" %%i in ('type "%textFile%" ^& break ^> "%textFile%" ') do (
        set "line=%%i"
        setlocal enabledelayedexpansion
        >>"%textFile%" echo(!line:%search%=%replace%!
        endlocal
    )

for /f прочитает все данные перед началом обработки. Таким образом, в процессе чтения данных файл опустеет. Затем весь вывод добавляется к файлу.