- 批处理脚本教程
- 批处理脚本 - 首页
- 批处理脚本 - 概述
- 批处理脚本 - 环境
- 批处理脚本 - 命令
- 批处理脚本 - 文件
- 批处理脚本 - 语法
- 批处理脚本 - 变量
- 批处理脚本 - 注释
- 批处理脚本 - 字符串
- 批处理脚本 - 数组
- 批处理脚本 - 决策制定
- 批处理脚本 - 运算符
- 批处理脚本 - 日期和时间
- 批处理脚本 - 输入/输出
- 批处理脚本 - 返回代码
- 批处理脚本 - 函数
- 批处理脚本 - 进程
- 批处理脚本 - 别名
- 批处理脚本 - 设备
- 批处理脚本 - 注册表
- 批处理脚本 - 网络
- 批处理脚本 - 打印
- 批处理脚本 - 调试
- 批处理脚本 - 日志记录
- 批处理脚本资源
- 批处理脚本 - 快速指南
- 批处理脚本 - 有用资源
- 批处理脚本 - 讨论
批处理脚本 - 数组
批处理脚本中没有专门定义数组类型,但可以实现。在批处理脚本中实现数组时,需要注意以下几点。
- 数组的每个元素都需要使用 set 命令定义。
- 需要使用 'for' 循环遍历数组的值。
创建数组
使用以下 set 命令创建数组。
set a[0]=1
其中 0 是数组的索引,1 是分配给数组第一个元素的值。
另一种实现数组的方法是定义一个值列表并遍历该值列表。以下示例演示了如何实现这一点。
示例
@echo off set list=1 2 3 4 (for %%a in (%list%) do ( echo %%a ))
输出
以上命令产生以下输出。
1 2 3 4
访问数组
您可以使用下标语法从数组中检索值,在数组名称后立即使用方括号传递要检索的值的索引。
示例
@echo off set a[0]=1 echo %a[0]%
在此示例中,索引从 0 开始,这意味着可以使用索引 0 访问第一个元素,可以使用索引 1 访问第二个元素,依此类推。让我们查看以下示例以创建、初始化和访问数组 -
@echo off set a[0]=1 set a[1]=2 set a[2]=3 echo The first element of the array is %a[0]% echo The second element of the array is %a[1]% echo The third element of the array is %a[2]%
以上命令产生以下输出。
The first element of the array is 1 The second element of the array is 2 The third element of the array is 3
修改数组
要将元素添加到数组的末尾,您可以使用 set 元素以及数组元素的最后一个索引。
示例
@echo off set a[0]=1 set a[1]=2 set a[2]=3 Rem Adding an element at the end of an array Set a[3]=4 echo The last element of the array is %a[3]%
以上命令产生以下输出。
The last element of the array is 4
您可以通过在给定索引处分配新值来修改数组的现有元素,如下例所示 -
@echo off set a[0]=1 set a[1]=2 set a[2]=3 Rem Setting the new value for the second element of the array Set a[1]=5 echo The new value of the second element of the array is %a[1]%
以上命令产生以下输出。
The new value of the second element of the array is 5
遍历数组
遍历数组是通过使用 'for' 循环并遍历数组的每个元素来实现的。以下示例显示了一种简单的数组实现方式。
@echo off setlocal enabledelayedexpansion set topic[0]=comments set topic[1]=variables set topic[2]=Arrays set topic[3]=Decision making set topic[4]=Time and date set topic[5]=Operators for /l %%n in (0,1,5) do ( echo !topic[%%n]! )
关于以上程序,需要注意以下几点 -
数组的每个元素都需要使用 set 命令专门定义。
使用带 /L 参数的 'for' 循环遍历范围来遍历数组。
输出
以上命令产生以下输出。
Comments variables Arrays Decision making Time and date Operators
数组长度
数组的长度是通过遍历数组中的值列表来完成的,因为没有直接函数来确定数组中元素的数量。
@echo off set Arr[0]=1 set Arr[1]=2 set Arr[2]=3 set Arr[3]=4 set "x = 0" :SymLoop if defined Arr[%x%] ( call echo %%Arr[%x%]%% set /a "x+=1" GOTO :SymLoop ) echo "The length of the array is" %x%
输出
输出以上命令产生以下输出。
1 2 3 4 "The length of the array is" 4
在数组中创建结构
结构也可以在批处理文件中实现,只需进行一些额外的编码即可实现。以下示例演示了如何实现。
示例
@echo off 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 FOR /L %%i IN (0 1 2) DO ( call echo Name = %%obj[%%i].Name%% call echo Value = %%obj[%%i].ID%% )
关于以上代码,需要注意以下关键事项。
使用 set 命令定义的每个变量都与数组的每个索引关联了 2 个值。
变量 i 设置为 0,以便我们可以循环遍历结构,其长度为 3。
我们始终检查 i 的值是否等于 len 的值,如果不是,则循环遍历代码。
我们可以使用 obj[%i%] 表示法访问结构的每个元素。
输出
以上命令产生以下输出。
Name=Joe Value=1 Name=Mark Value=2 Name=Mohan Value=3