Eu tenho esse funcionamento para / F loop:
Setlocal EnableDelayedExpansion
for /F "tokens=*" %%A in (New.txt) do (
echo "%%A" | findstr /C:"[B]" 1>nul
if !errorlevel!==1 echo "%%A"
set line=%%A
if !errorlevel!==0 echo BOLD !line:[B]=!
)
O que ele faz é digitar linhas em um arquivo de texto, exceto se ele aparecer em uma linha com o texto [B]
nele, ele adiciona BOLD
ao início da linha. Eu estou procurando uma maneira de ter algo semelhante para [S]
onde ele pode adicionar SUPER
ao início. Eu tive isso:
Setlocal EnableDelayedExpansion
for /F "tokens=*" %%A in (New.txt) do (
echo "%%A" | findstr /C:"[B]" 1>nul
if !errorlevel!==1 echo "%%A" | findstr /C:"[S]" 1>nul & if %errorlevel%==1 echo "%%A" & if %errorlevel%==0 echo SUPER !line:[S]=!
set line=%%A
if !errorlevel!==0 echo "!line:[B]=!"
)
No entanto, não funciona por causa de como isso está sendo executado.
EDIT: Eu não posso terminar o loop com uma quebra ou goto porque existem várias linhas para processar.
windows
batch-file
findstr
Mark Deven
fonte
fonte