setlocal disableDelayedExpansion

:Variables
set InputFile=%2
set OutputFile=%InputFile%#
set entity=%1
set "_strFind=Check_Dynamic_EntityControllers"
set _strInsert1=[InlineData("%entity%")]
set "_strInsert1=        %_strInsert1%"

rem if already inserted, do nothing
:Check
for /F "delims=" %%L in ('findstr /n "^" "%InputFile%"') do (
  set "line=%%L"
  setlocal EnableDelayedExpansion

  set "line=!line:*:=!"
  if "!line!" neq "" (
    set "_line=!line:%_strInsert1%=!"
  ) else (
    set _line=!line!
  )
  if "!_line!" neq "!line!" goto finish
  endlocal
)
@echo off

: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%=!"
    ) else (
      set _line=!line!
    )


    if "!_line!" neq "!line!" (
       echo !_strInsert1!
    )
    echo.!line!
    endlocal
  )
)

del %InputFile%>nul
copy %OutputFile% %InputFile%>nul
del %OutputFile%>nul

:finish