我有这个脚本:
setlocal EnableDelayedExpansion
set SECTION=dispid 3
set TARGET=pushscope
@echo on
for /F "tokens=1* delims=:" %%a in ('findstr /N /C:"%SECTION%" /C:"%TARGET%" %CHECKER%') do (
if not defined StartSection (
if not %%b==%%b:%SECTION%=% set StartSection=%%a
) else (
goto :EOF
if not defined TargetLine (
goto :EOF :: Do nothing yet
if not %%b equ !%%b:%TARGET%=! set TargetLine=%%a& goto checkercont
)
)
)
在 StartSection (问题区域)中,我正在尝试进行查找和替换以确认该行是我想要的行,并保存该行号。
我该如何编写它才能正确解析变量并正确查找和替换?
我试过的。"[%b]" 表示被替换的 %%b:
%%b:%SECTION%=% returns "[%b]:dispid 3=a" (Yes, it somehow gives me an 'a').
!%b:%SECTION%=! returns "!SECTIONa"
!%%b:%SECTION%=! returns "![%b]:dispid 3=!" (which then gives me an error saying 3 is not a command)
!%b:%SECTION%=%! returns "!SECTION!"
!%%b:!SECTION!=! returns "![%b]:!SECTION!=!"
%b:%%SECTION%%=% return "dispid 3" (and error)
我觉得最后一个它解析粗体然后是斜体。%b:%%部分%%=% 并使用 ! 似乎从来没有完成任何事情,除了向我展示至少一个。
是的,过了一会儿,我开始乱扔垃圾(很沮丧)。
那么让这个工作的正确方法是什么?
谢谢