windows bat系列9:for处理案例三 单行按指定分隔符分割
1. 需求
假设有一行字符串,由几个字串组成,每个字串间用分隔符delimiter连接,我们要对各个子串进行操作。这就涉及到将单行字符串按分隔符分割。如PATH环境变量就是这样,每个字串就是一个路径:
C:\Users\Administrator.WIN7-1609051925>echo %path%
C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;D:\software\apache-tomcat-9.0.8\bin;D:\software\apache-tomcat-9.0.8\lib;C:\Program Files\7-Zip
2. 代码
@echo off
Rem close echoRem chane active page
chcp 437 >nul
Rem delay expansion
setlocal enabledelayedexpansionRem set parameters
set TESTLIST=D:\myself\windows_script\bat_out;D:\myself\windows_script\bat_test;D:\myself\windows_script\testnull;
set TMPLIST=%TESTLIST%Rem print title
echo=
echo=
echo=
echo ---------------------------%date% %time:~0,8%---------------------------set /a NUM = 1
:loop
for /f "tokens=1* delims=;" %%a in ("%TMPLIST%") do (Rem set local parametersecho #!NUM! is %%aset /a NUM = NUM + 1Rem recursionset TMPLIST=%%b
)
if defined TMPLIST goto :loopRem
echo=
echo=
echo=endlocalpause
3. 代码解析
a. 待分割的变量TESTLIST最后一个字段末尾也需要加上“;”分隔符,否则将少分割一个字串;
b. 分割采用迭代算法,由于for /f "tokens=1* delims=;" %%a in ("%TMPLIST%") do (…)默认是指定分隔符按行分割字符串,而我们总共只有一行字符串,因而我们把分割后的字符串重新存入临时变量:
set TMPLIST=%%b
后续通过DOS的goto再次迭代分割,最终达到目的;
c. 自定义NUM变量表示分割出来的字串的序号(从1开始);
d. %date% %time:~0,8%是截取系统日期显示出来。
4. 测试结果
结果表面:分割正确。
有个小bug:显示日期是出现??乱码,那个位置应该是显示星期几。此问题笔者不想再改了,请读者自行研究。提示:需要修改windows系统的语言集与位置等。
windows bat系列9:for处理案例三 单行按指定分隔符分割相关推荐
- windows bat系列4:for处理案例一 逐行处理字段分割
背景 假设有文件内容如下,其以列表形式显示了不同文件夹中文件数量,要求提取清单列中最后一列的数字. CHECK IS THERE ANY INTERFACE FILES IN I/O DIRS --- ...
- 实用 Windows 软件系列分享(三)
苏生不惑第271 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前分享过新买了台笔记本电脑,分享些实用的Windows软件 和实用 Windows 软件系列分享(二),这里继续分享那些实用的 ...
- windows Bat 批命令 教程
转载 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小 ...
- Windows BAT批处理脚本教程
第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识: ...
- windows bat脚本教程
第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识: ...
- Windows bat常用批处理命令学习
转载自:https://blog.csdn.net/qq826364410/article/details/79323351 第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义, ...
- Windows Mobile系列手机操作系统
与其它掌上型电子设备的操作系统不同的是,Windows Mobile系列操作系统是在微软计算机的Windows操作系统上变化而来的,因此,它们的操作界面非常相似,熟悉计算机Windows系列操作系统的 ...
- zabbix生产环境案例(三)
生产环境案例(三) 链接:https://pan.baidu.com/s/1q5YwJMTcZLcS5OQ0iOu44A 提取码:8gdi 复制这段内容后打开百度网盘手机App,操作更方便哦 1. Z ...
- 【Windows 问题系列第 7 篇】电脑卡跟C盘容量有关系吗?
这是[Windows 问题系列第 7 篇],如果觉得有用的话,欢迎关注专栏. 你有没有遇到过这样的情况? 你电脑最近很卡,然后你请教一个懂点电脑常识的同事帮你看,他过来一看,然后说,你C盘容量就剩下3 ...
最新文章
- 「程序员做饭指南」霸榜GitHub,还用数学公式解决「吃什么」世纪难题,微软程序员出品...
- 停车30分钟内不收费,程序员远程操控挪车,实现自动免费停车...
- Flink State 误用之痛,你中招了吗?
- 累了,开心一下。传说中的脑壳进水
- [RabbitMQ]MQ 的选择
- vip地址能ping不通_电脑高手必备ping和netstat命令
- c 形参 可变 入门
- 痛失 3000 万美元比特币现金,只因一张 SIM 卡?
- CakePHP 2.x CookBook 中文版 第七章 模型 之 数据校验
- Ubuntu 问题合集
- android 获取全国地址,如何在android中获取国家代码(调用代码)?
- Python正则表达式
- 夜深人静, 看看编程人生
- laravel seeder factory填充数据
- 计算机休眠后无法连接无线网络,笔记本Win7系统唤醒休眠模式后无线无法自动连接怎么办...
- 西安交通大学915考研编程笔记
- ORB_原理与源码解析
- 商业虚拟专用网络技术四数据传输安全技术
- Python数据挖掘过程
- 使用PyQt5界面设计