1)快速示例:
set a="Hello"
set d="a"
现在,如何使用变量(的值)获取“a”的值d
?例如,变量名称可能是由用户使用提示输入的,或者变量名称可能已发送到函数。
这些想法都不起作用:
set e=%%d%%
set e=%%%d%%%
set e=set e=%%d%%
%e%
经过一个小时的头脑风暴和谷歌搜索,我想出了这个,但它似乎太复杂和笨拙 - 真的没有其他/更简单的方法吗?:
set a="Hello"
set b="Good day"
set c="Good night"
set /p d="Give me a variable name"
call :GetVarVal %%%d%%% "e"
REM This now gives the correct value:
echo %e%
goto :eof
:GetVarVal
set "%~2=%~1"
goto :eof
2)另外,有点类似,有没有更好的方法来做到这一点(理想情况下没有自定义功能):
set a="C:\Users\Blah\Documents\MP4Box\MP4Box.exe"
call :get_drive_and_path a
echo %b%
goto :eof
:get_drive_and_path
set b=%~dp1
goto :eof
谢谢!