[英]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.