我如何批量嵌套变量

时间:2019-11-23 02:24:10

标签: batch-file

我一直在制作菜单系统,但遇到一个问题:我必须使用一个变量来跟踪所选项目,以指定要在列表中使用的项目。我知道以前曾问过这个问题,但是我还没有找到合适的答案

set new_option[%selected%]=%selection_symbol%%org_option[%selected%]%

嵌套变量为“%org_option [%selected%]%”

问题是批处理将变量分为“%org_option [%”,“ selected”和“%]%” 但我希望将其拆分,以便使用“ selected”变量定义列表中的位置,这意味着“ selected”嵌套在“ org_option []”中

1 个答案:

答案 0 :(得分:2)

您实质上是在尝试引用数组变量。您有两种选择来解决此问题。一种是使用CALL命令来获得额外的变量扩展层,这需要您将外部变量上的百分比符号加倍,另一种则需要您在代码中启用延迟扩展,并使用感叹号引用外部变量。

 CALL set new_option[%selected%]=%selection_symbol%%%org_option[%selected%]%%

OR

 Setlocal enabledelayedexpansion
 set new_option[%selected%]=%selection_symbol%!org_option[%selected%]!