使用批处理文件替换第一次出现的文本

时间:2016-05-18 18:45:22

标签: windows batch-file

我在线跟踪了一个示例,创建了一个批处理文件,该文件将替换给定文件,同时替换所有出现的字符串。我修改了这个脚本,以便它只替换第一次出现,但现在后续行没有打印,我无法弄清楚原因。我基本上做的就是执行检查以确定这是否是第一行,如果不是,那么它只是回显该行。我做错了什么?

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.
)

0 个答案:

没有答案