@echo off setlocal disableDelayedExpansion :Variables set InputFile=%1 set OutputFile=%InputFile%# set "_strFind=%2" set "_strInsert=%3" set "_withoutdelete=%4" :Replace >"%OutputFile%" ( for /F "delims=" %%L in ('findstr /n "^" "%InputFile%"') do ( set "line=%%L" setlocal EnableDelayedExpansion set "line=!line:*:=!" if "!line!" neq "" ( set "_line=!line:%_strFind%=%_strInsert%!" ) else ( set _line=!line! ) echo.!_line! endlocal ) ) if "%_withoutdelete%"=="" ( del %InputFile% copy %OutputFile% %InputFile%>nul del %OutputFile% )