Поскольку вы уже используете DelayedExpansion, я всегда вставляю текущую строку в переменную line
и проверяю с помощью подстановки строк, line
содержит ли разметку.
@Echo off & Setlocal EnableDelayedExpansion for /F "tokens=*" %%A in (New.txt) do ( set "line=%%A" if "!line!" neq "!line:[B]=!" set "line=BOLD !line:[B]=!" if "!line!" neq "!line:[S]=!" set "line=SUPER !line:[S]=!" echo=!line! )