我在线跟踪了一个示例,创建了一个批处理文件,该文件将替换给定文件,同时替换所有出现的字符串。我修改了这个脚本,以便它只替换第一次出现,但现在后续行没有打印,我无法弄清楚原因。我基本上做的就是执行检查以确定这是否是第一行,如果不是,那么它只是回显该行。我做错了什么?
set "once=1"
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
set "line=%%B"
if defined once (
if defined line (
call set "line=echo.%%line:%~1=%~2%%"
for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
set "once="
)
) ELSE echo.
)