【问题标题】:Is there a more effecient way to assign multiple variables in Batch?有没有更有效的方法来批量分配多个变量?
【发布时间】:2017-12-27 20:26:10
【问题描述】:

我真的是 Batch 的新手,我正在尝试制作一个放置“风景”之类的东西的游戏。但我最终使用了很多变量:

set a1=%none%
set a2=%none%
set a3=%none%
set a4=%none%
set a5=%none%
set a6=%none%
set a7=%none%
set a8=%none%
set a9=%none%
set a10=%none%
set a11=%none%
set a12=%none%

我希望用户输入什么“种类”的风景,让我们说“b。所以:

set a1=%b%
set a2=%b%
set a3=%b%
set a4=%b%
set a5=%b%
set a6=%b%
set a7=%b%
set a8=%b%
set a9=%b%
set a10=%b%
set a11=%b%
set a12=%b%

还有其他,但过了一段时间它变得很长。有没有更有效的方法来分配这么多变量?任何帮助都会很棒。

【问题讨论】:

  • For /l %%C in (1,1,12) Do Set a%%C=%b%
  • FOR /L %%# IN (1,1,12) DO SET "a%%#=%b%"...但是为什么将所有这些变量都设置为完全相同的值?
  • @compo 我将它们设置为所有相同的变量,以便它看起来像瓷砖,当玩家移动到那个位置时,我会将该瓷砖(如 a1)设置为 %player%。跨度>

标签: batch-file


【解决方案1】:

我真的无法从你提出问题的方式看出你在做什么,但你可以通过 for 循环或可能从文本文件完成你的任务:“Set Variables From Text File”。

基本上,要求用户输入大量变量并没有什么好的方法,尤其是在所有这些变量实际上都是唯一值的情况下。如果您只是问一个问题然后检查答案,那么您最好的解决方案是使用循环并重用变量(除非您想从历史上跟踪答案)。

最好的解决方案是不使用批处理文件,而是将注意力转移到更强大的脚本语言上,例如 PowerShell 或 Python。如果您特别坚持使用 Windows,则可以从 PowerShell 中获得一些好处。如果您想学习在多个平台上使用的东西,Python 是您的最佳选择(至少在我的工作中)。

【讨论】:

  • 使用不同的语言如何更容易从用户输入中获取多个变量值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多