我想用另一个字符串批量替换字符串的某些部分。但我不知道这根线是什么。所以我想用一个变量:

for /r %%i in (\file\tmp\*) do (
    call :createJob %%i
)
goto :eof

:createJob
    SETLOCAL
    set filename=%1
    for /F "delims=" %%i in (%filename%) do (
        set "line=%%i"
    )
    call :addId "%line%"
    ENDLOCAL
goto :eof

:addId
    @setlocal enableextensions enabledelayedexpansion
    set string=%~1
    set /A "i=0"
    echo %string%
    for %%a in (%string%) do (
        if !i! EQU 1 (
            set id=;%%a;
            call set result=%string:!id!=;HELLO;%
        )
        echo %%a
        set /A "i+=1"
    )
    echo %result%
    ENDLOCAL
goto :eof

:eof

我在看基本的csv文件。在函数addid中,行“call set result=%string:!身份证件!=;hello;%“不起作用。绳子还是一样的。我该怎么解决?

最佳答案

请改为:

call set result=%%string:!id!=;HELLO;%%

或者,测试:
set result=!string:;%%a;=;HELLO;!

10-07 19:16
查看更多