【问题标题】:What is the Array In Batch Script and how its work? [closed]什么是批处理脚本中的数组及其工作原理? [关闭]
【发布时间】:2017-02-13 12:42:04
【问题描述】:

我想知道什么是批处理脚本中的数组以及它是如何工作的? 以及为什么我们需要在批处理文件中使用数组?

我知道我们可以使用 SETFOR 命令来创建数组,但完全不知道为什么必须使用它。

非常感谢!

@echo off
set len=3
set obj[0].Name=Joe
set obj[0].ID=1
set obj[1].Name=Mark
set obj[1].ID=2
set obj[2].Name=Mohan
set obj[2].ID=3
set i=0
:loop
if %i% equ %len% goto :eof
set cur.Name=
set cur.ID=
for /f "usebackq delims==. tokens=1-3" %%j in (`set obj[%i%]`) do (
set cur.%%k=%%l
)
echo Name=%cur.Name%
echo Value=%cur.ID%
set /a i=%i%+1
goto loop

为什么我们必须在批处理脚本中使用这样的代码?

【问题讨论】:

  • 谁说你必须这样做?此外,批处理文件中确实没有数组(不像其他语言中存在的那样);您可以使用一个构造使其看起来像...以上所做的就是创建单独的环境变量(例如obj[0].Nameobj[2].ID)并使用名称粘贴技术使其看起来有点像访问数组。它可能很有用(尽管我从来不需要它),但请记住它不是成熟的数组。
  • 数组数据结构是一个强大的工具,可以用更简单的方式解决各种问题。这方面的例子有很多,所以我邀请你去寻找它们,比如this introductionWikipedia article。请注意,此描述不涉及任何编程语言,因此使用数组的好处也适用于批处理文件。
  • @Aacini 我只需要你关于 Array 的重要信息,谢谢

标签: arrays batch-file


【解决方案1】:

你不“必须”使用数组,你“可以”使用语言提供或允许你使用的工具,但在这种情况下,工具甚至不存在。

批处理文件的语法不包含数组

但是,we can simulate 它们存在(以及二叉树、链表、定义类型……)。批处理解析器只看到变量,一个允许检索存储信息的变量名称,是我们对它们的命名以及我们如何编写存储/检索操作来创建我们对数组的感知。

【讨论】:

  • 我邀请您阅读my opinion 关于这个“答案”(恕我直言应该只是评论)...
  • @Aacini,对不起,我不能同意你的观点。 “什么是批处理脚本中的数组及其工作原理?” 之类的问题需要这种答案(当然,包括您的答案的链接)。只是我的看法,但我认为数据类型和数据结构是软件开发的基础。无论是否学究,开发人员(我会认为任何对数据表示有兴趣和兴趣的人都是开发人员)不应误解或不知道数据的存储方式和位置。跨度>
猜你喜欢
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-19
  • 2013-03-11
  • 1970-01-01
相关资源
最近更新 更多