簡體   English   中英

使用變量訪問Windows命令文件參數

[英]Using variables to access windows command file parameters

我正在嘗試使用變量名訪問傳遞給函數的參數。 我知道執行此操作的其他方式,例如使用SHIFT命令,但是在這種情況下,我正在嘗試這種方式。 我認為通過使用“ setlocal enabledelayedexpansion”命令,我可以做到這一點,因為它允許使用圍繞其的感嘆號而不是百分號來訪問變量。 這是下面腳本中的行不起作用:

    set parm_value=%!parm_nr!

我認為這將導致如下結果:

    set parm_value=%1

但是相反,它導致:

    set parm_value=1

有誰知道這種語法是否可行? 下面是一個演示此問題的測試腳本。 除此一項外,其他所有項目均正常運行。 先感謝您。

    :BOJ
        echo off
        setlocal enabledelayedexpansion
        cls
        echo.

        call :EXAMPLE_1 parm_1.1 parm_1.2 parm_1.3

        goto :EOJ

    :EXAMPLE_1
        set nr_parms=0
        for %%x in (%*) do set /A nr_parms+=1

        set parm_nr=1

    :EXAMPLE_1_LOOP
        if %parm_nr% GTR %nr_parms% goto :EXAMPLE_1_END

        set parm_value=%!parm_nr!
        echo Parameter #%parm_nr% : %parm_value%
        set /A parm_nr+=1
        goto :EXAMPLE_1_LOOP

    :EXAMPLE_1_END
        echo.
        exit /B 0

    :EOJ
        pause

嘗試

call set parm_value=%%!parm_nr!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM