Batch file 使用同一个bat文件调用ReadINI脚本

Batch file 使用同一个bat文件调用ReadINI脚本,batch-file,ini,Batch File,Ini,我只需要使用一个bat文件,所以我将脚本复制到我的bat文件中。 如何调用此脚本,并在局部变量中使用currval值 @setlocal enableextensions enabledelayedexpansion @echo off set file=%1 set area=[%2] set key=%3 set currarea= for /f "delims=" %%a in (!file!) do ( set ln=%%a if "x!ln:~0,1!"=="x[" (

我只需要使用一个bat文件,所以我将脚本复制到我的bat文件中。 如何调用此脚本,并在局部变量中使用currval值

@setlocal enableextensions enabledelayedexpansion
@echo off
set file=%1
set area=[%2]
set key=%3
set currarea=
for /f "delims=" %%a in (!file!) do (
    set ln=%%a
    if "x!ln:~0,1!"=="x[" (
        set currarea=!ln!
    ) else (
        for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
            set currkey=%%b
            set currval=%%c
            if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
                echo !currval!
            )
        )
    )
)
endlocal

我想您正在搜索函数

您可以将其粘贴到批处理文件中,并通过
call:myFunction
调用它,但由于批处理函数没有返回值,您需要通过将结果赋给变量来显式执行此操作

在您的情况下,您的代码可能如下所示

@echo off
setlocal enableextensions enabledelayedexpansion
call :myFunction %1 %2 %3
echo !result!
exit /b

:myFunction
set file=%1
set area=[%2]
set key=%3
set currarea=
for /f "delims=" %%a in (!file!) do (
    set ln=%%a
    if "x!ln:~0,1!"=="x[" (
        set currarea=!ln!
    ) else (
        for /f "tokens=1,2 delims==" %%b in ("!ln!") do (
            set currkey=%%b
            set currval=%%c
            if "x!area!"=="x!currarea!" if "x!key!"=="x!currkey!" (
                set result=!currval!
            )
        )
    )
)
exit /b
也许这并不完美,因为它只需要一个结果,但我希望它指向正确的方向