【bat】实现数组,for循环取数据
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循环取数据的更多相关文章
- python locust 性能测试:locust参数-保证并发测试数据唯一性,循环取数据
from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...
- python locust 性能测试:locsut参数化-保证并发测试数据唯一性,不循环取数据
from locust import TaskSet, task, HttpLocustimport queue class UserBehavior(TaskSet): @task def test ...
- python locust 性能测试:locust 参数化(list) ---循环取数据,数据可重复使用
from locust import TaskSet, task, HttpLocust class UserBehavior(TaskSet): def on_start(self): # 当模拟用 ...
- php解析json数组(循环输出数据)的实例
以快递100接口为例 返回的JSON数据 {"message":"ok","nu":"350116805826",&qu ...
- mvc中ViewBag返回数组如何循环显示数据
直接在for循环里面定义出viewbag @for (int i = 0; i < ViewBag.permission.Count; i++) { var permission = ViewB ...
- lr参数化——500户并发迭代1次 循环取5条数据
lr参数化——500户并发迭代1次 循环取5条数据 比如vuser1.vuser2.vuser3..........,vuser500 shuju1,shuju2,shuju3,shuju4,shuj ...
- PAT自测_打印沙漏、素数对猜想、数组元素循环右移、数字加倍重排、机器洗牌
-自测1. 打印沙漏() 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号 ...
- .net处理页面的抓取数据
//要抓取数据的页面路径 string url = "http://www.scedu.net/banshi/used-car/lower-secondary-education/middl ...
- 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)
代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...
随机推荐
- firstResponder
https://developer.apple.com/library/content/documentation/EventHandling/Conceptual/EventHandlingiPho ...
- ant-design-vue有v-decorator时defaultValue无效
<a-input v-decorator="[ 'userName', { rules: [ { required: true, message: '请输入您的账号!' } ], in ...
- 华三IRF配置
配置步骤: IRF的配置步骤: 1.配置IRF域(域ID=10.成员ID.优先级) irf domain 10irf member 1 priority 10irf member 2 priority ...
- Json断言
Additionally assert value:添加验证的值,只有勾选了此复选框,才可以在Expected Value中设置期望的值. Match as regular expression:匹配 ...
- react生命周期钩子函数
render在更新阶段和挂在阶段都会执行 class App extends Component { render() { return ( <div> <h1>reacet生 ...
- AsyncAPI 几个方便的工具
AsyncAPI 类似openapi 也提供了一些周边工具 editor 类似openapi 的,但是目前官方已经不推荐使用了,推荐使用playground,以下是构建一个容器镜像 clone 代码 ...
- ksh与bash的异同
(1) 在ksh是,数组的index只能从0到1023,而bash中没有这样的限制. (2) ksh与bash初始化数组的语法不同: 如下所示 icymoon# ksh icymoon# set -A ...
- 洛谷 P1396
P1396 传送门 扯些题外话 讲真的我刚看到这个题的时候真的傻fufu的..... 大体题意 找出从s走到t的拥挤度最大值最小.. 思路 说最大值最小可能就会有dalao开始二分了. 想我这种的蒟蒻 ...
- 我用AI(Adobe Illustrator CS6)合并路径的两个常用方法
作为一个切图仔,经常与设计大佬的PSD打交道,PSD里面又有各种icon图标需要导出,偷懒的方法直接导出png图片,丢个背景图上页面完美解决问题!! 第二天来个需求,能不能把这个icon图标给我换个颜 ...
- Vue项目预渲染机制
我们知道SPA有很多优点,不过一个缺点就是对(不是Google的)愚蠢的搜索引擎的SEO不友好,为了照顾这些引擎,目前主要有两个方案:服务端渲染(Server Side Rendering).预渲染( ...