我有这个功能的/ F循环:
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]=!
)
它的作用是在文本文件中键入行,除非它与包含文本的行跨越[B]
,它将添加BOLD
到行的开头。我正在寻找一种方法[S]
,使它可以SUPER
从一开始就具有类似的功能。我有这个:
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]=!"
)
但是,由于它的运行方式,它不起作用。
编辑:我不能以break或goto结束循环,因为有多行要处理。
由于您已经在使用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!
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句