【问题标题】:how can I nest variables in batch [duplicate]如何批量嵌套变量[重复]
【发布时间】:2020-03-19 02:26:38
【问题描述】:

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

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

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

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

【问题讨论】:

标签: batch-file


【解决方案1】:

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

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

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

【讨论】:

  • 我可能最终会删除这个答案,因为 luciole75w 指出这确实是一个重复的问题。所以我已经开始投票过程来结束这个问题。
  • 您的第一个关于调用的示例,在 for/if 块之外,看起来实际上比链接的答案更清晰。在我看来,您的回答仍然很有趣,我会保留它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
相关资源
最近更新 更多