1、数组对象

@echo off

set objLength=2

set obj[0].name=test1
set obj[0].password=1234
set obj[1].name=test2
set obj[1].password=9876 set objIndex=0 :loopStart
if %objIndex% equ %objLength% goto end set objCurrent.name=0
set objCurrent.password=0 for /f "usebackq delims==. tokens=1-3" %%i in (`set obj[%objIndex%]`) do (
set objCurrent.%%j=%%k
echo 第一个=%%i
echo 第二个=%%j
echo 第三个=%%k
) echo name=%objCurrent.name%
echo password=%objCurrent.password% set /a objIndex=%objIndex% + 1 goto loopStart :end pause

解析:

@echo off
::规定数组长度
set objLength=2
::给数组设值
set obj[0].name=test1
set obj[0].password=1234
set obj[1].name=test2
set obj[1].password=9876
::初始索引
set objIndex=0
::循环
:loopStart
::判断索引值是否大于数组长度,大于的话跳到结束,不大于的话继续循环
if %objIndex% equ %objLength% goto end ::初始化变量
set objCurrent.name=0
set objCurrent.password=0
::这个循环是数组对象处理循环,就是处理单个对象。/f是参数格式 usebackq声明路径有空格
::delims==.是以=和.切割字符串,tokens=1-3是取切割后字符串的前1到3个,%%i表示第一个字符串【比如:obj[0]】,%%j表示第二个字符串【比如:password】,%%k表示第三个字符串【比如:1234】,`set obj[%objIndex%]`和/f取到字符串【比如:obj[0].password=1234】
for /f "usebackq delims==. tokens=1-3" %%i in (`set obj[%objIndex%]`) do (
:: 赋值变量
set objCurrent.%%j=%%k
echo 第一个=%%i
echo 第二个=%%j
echo 第三个=%%k
) echo name=%objCurrent.name%
echo password=%objCurrent.password% ::索引+1
set /a objIndex=%objIndex% + 1
::继续循环
goto loopStart :end pause

2、简单数组

@echo off
::规定数组长度
set objLength=3
::给数组设值
set obj[0]=test1
set obj[1]=test2
set obj[2]=9876
::初始索引
set objIndex=0
::循环
:loopStart
::判断索引值是否大于数组长度,大于的话跳到结束,不大于的话继续循环
if %objIndex% equ %objLength% goto end ::初始化变量
set objCurrent=0
::这个循环是数组对象处理循环,就是处理单个对象。/f是参数格式 usebackq声明路径有空格
::delims==是以=切割字符串,tokens=1-3是取切割后字符串的前1到3个,%%i表示第一个字符串【比如:obj[0]】,%%j表示第二个字符串【比如:test2】,`set obj[%objIndex%]`和/f取到字符串【比如:obj[0]=test2】
for /f "usebackq delims== tokens=1-2" %%i in (`set obj[%objIndex%]`) do (
:: 赋值变量
set objCurrent=%%j
echo 第一个=%%i
echo 第二个=%%j
) echo objCurrent=%objCurrent% ::索引+1
set /a objIndex=%objIndex% + 1
::继续循环
goto loopStart :end pause

简化版

@echo off & setlocal EnableDelayedExpansion

set obj[0]=test1
set obj[1]=test2
set obj[2]=9876
set obj[3]=wwww set objCurrent=0 for /l %%a in (0,1,3) do (
for /f "usebackq delims== tokens=1-2" %%i in (`set obj[%%a]`) do (
echo 第一个=%%i
echo 第二个=%%j
set objCurrent=%%j
)
echo objCurrent=!objCurrent! ) pause

@echo off & setlocal EnableDelayedExpansion

set obj[0]=test1
set obj[1]=test2
set obj[2]=9876
set obj[3]=wwww set objCurrent=0 for %%a in (0,1,2,3) do (
for /f "usebackq delims== tokens=1-2" %%i in (`set obj[%%a]`) do (
echo 第一个=%%i
echo 第二个=%%j
set objCurrent=%%j
)
echo objCurrent=!objCurrent! ) pause

【bat】实现数组,for循环取数据的更多相关文章

  1. python locust 性能测试:locust参数-保证并发测试数据唯一性,循环取数据

    from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...

  2. python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据

    from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...

  3. python locust 性能测试:locust 参数化(list) ---循环取数据,数据可重复使用

    from locust import TaskSet, task, HttpLocust class UserBehavior(TaskSet): def on_start(self): # 当模拟用 ...

  4. php解析json数组(循环输出数据)的实例

    以快递100接口为例 返回的JSON数据 {"message":"ok","nu":"350116805826",&qu ...

  5. mvc中ViewBag返回数组如何循环显示数据

    直接在for循环里面定义出viewbag @for (int i = 0; i < ViewBag.permission.Count; i++) { var permission = ViewB ...

  6. lr参数化——500户并发迭代1次 循环取5条数据

    lr参数化——500户并发迭代1次 循环取5条数据 比如vuser1.vuser2.vuser3..........,vuser500 shuju1,shuju2,shuju3,shuju4,shuj ...

  7. PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌

    -自测1. 打印沙漏() 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号 ...

  8. .net处理页面的抓取数据

    //要抓取数据的页面路径 string url = "http://www.scedu.net/banshi/used-car/lower-secondary-education/middl ...

  9. 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)

    代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...

随机推荐

  1. Linux中的磁盘练习

    查看磁盘接口类型 ide dh[a-z] scsi sd[a-z] 添加磁盘 先添加一个磁盘 cd /dev/ ls sd* 可以看到先添加的磁盘 磁盘分区 .fdisk /dev/sdb n (添加 ...

  2. bzoj 1260涂色 题解

    题面 区间dp, 我学的也不怎么好. myj说动态规划就是搜索的无限剪枝. 所以是搜了网上的代码, 看了看. 思路就是枚举区间,f数组就是存储从i到j需要的最少次数, 当然一开始他们的值要先设置一个很 ...

  3. docker之网络桥接的两种方式

    第一种:直接敲命令方式配置安装网桥管理工具包:bridge-utile # yum install bridge-utils -y 1.先查看ip 是否有br0ip a2.brctl show 3使用 ...

  4. RFC-6455 The WebSocket Protocol 浅读

    什么是WebSokcet? WebSocket是一种协议,并且是各大主流浏览器作为客户端支持的协议.它的目标就是用来替代基于 XMLHTTPRequest和长轮询的解决方案.应用在时时弹幕,消息推送, ...

  5. 11 JavaScript Utility Libraries you Should Know in 2019

    11 Useful Javascript utility libraries to speed your development.

  6. uniapp - 点赞动画插件

    更新时间: 2019/8/31 - 点击下载demo 点赞动画插件配合animate.css更好用! 该组件参考于:https://github.com/OYsun/VueStar/tree/mast ...

  7. Cesium原理篇:GroundPrimitive【转】

    今天来看看GroundPrimitive,选择GroundPrimitive有三个目的:1 了解GroundPrimitive和Primitive的区别和关系 2 createGeometry的特殊处 ...

  8. IM (二):数据通信协议的选择

    https://www.jianshu.com/p/e9c2b7c48c34 http://www.52im.net/thread-283-1-1.html https://github.com/Ja ...

  9. pandas.merge数据连接合并

    https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2&shareId=400000000398 ...

  10. essay sundry

    感觉很多单词, 即使是所谓的抽象名词都有复数形式,是习惯用法,比如, details, comments, ads等 ad: 广告, advertise的缩写? advertise. advertis ...