使用变量访问Windows命令文件参数

时间:2014-09-21 14:41:55

标签: windows batch-file

我尝试使用变量访问传递给函数的参数 名称。我知道其他方法,例如使用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

1 个答案:

答案 0 :(得分:1)

尝试

call set parm_value=%%!parm_nr!