【问题标题】:Batch populating array in loop在循环中批量填充数组
【发布时间】:2013-07-18 04:05:18
【问题描述】:

嗨,我有一个批处理的大问题,说起来有点复杂,但我想出了解决方法,问题是我不知道如何批处理,如果在 c# 中我可以轻松完成因为我是批量新手,下面是c#,你们能教我如何批量做吗?我用谷歌搜索了一整天,但找不到方法,在此先感谢

ArrayList list = new ArrayList();
//let say variable "Filesx" consist of files count in one folder

for(int i = 0; i < Filesx; i++){
   list.Add("file number : " + i);
}

P/S:如果不能批量使用arraylist,单独使用array 就可以了

【问题讨论】:

  • 您是否要获取编号为 0 到 Filesx - 1 的数组?还是您想做一些更有用的事情(例如姓名列表等)?
  • 你看到stackoverflow.com/questions/138497/…了吗?将其与stackoverflow.com/questions/9448651/… 结合起来,您就有了答案。
  • 谢谢你的回复,也许吧,但我的目的只是为了下一次操作在循环内填充一个数组,是否可以批量处理?
  • 好的,我会试着调查一下,谢谢
  • 你提供的第二个链接解决了我的问题,非常感谢,所以批量数组不需要事先指定大小,就像arraylist一样,太酷了,很遗憾我不能将你标记为答案,因为它在评论中

标签: arrays loops batch-file arraylist


【解决方案1】:
@echo off
setlocal EnableDelayedExpansion

rem Populate the array with existent files in folder
set i=0
for %%a in (*.*) do (
   set /A i+=1
   set list[!i!]=%%a
)
set Filesx=%i%

rem Display array elements
for /L %%i in (1,1,%Filesx%) do echo file number %%i: "!list[%%i]!"

您必须注意,为方便起见,Batch 数组中的下标应该从 1 开始,而不是 0。

有关批处理文件中阵列管理的更多说明,请参阅:Arrays, linked lists and other data structures in cmd.exe (batch) script

【讨论】:

  • 需要注意的是,当您需要批量使用数组、链表或其他高阶数据结构时,您应该认真重新评估您选择的语言。
  • @AnsgarWiechers:您是否建议一个不懂其他语言但需要(或想要了解)这些功能的人必须学习另一种语言而不是批量使用它们?似乎没有人意识到批处理编程语言可以作为一种有价值的学习工具!
  • 我建议需要这些功能的人最好将时间花在学习更新和更通用的语言上,而不是将其浪费在解决像批处理这样的老旧语言的限制上。 YMMV。
  • @AnsgarWiechers 为什么你会在这里提出这个建议,在试图帮助@paiseha 的背景下?这个人很可能对可以使用哪种语言没有发言权。在这种情况下,您很可能是正确的,但这并没有真正的帮助。
  • @AnsgarWiechers 似乎是你,而不是我想开始争论。美好的一天。
猜你喜欢
  • 1970-01-01
  • 2012-04-16
  • 2020-09-11
  • 2021-04-21
  • 1970-01-01
  • 2013-06-25
  • 2018-11-21
  • 1970-01-01
相关资源
最近更新 更多