在CMD中使用for命令对单行字符串做分割的方法
我们都知道CMD中的for命令是执行循环命令的,数据来源可以是一个文件,一个命令的结果或一个字符串,只有这3种来源
如果是一个文件则对这个文件的所有字符串进行循环处理
如果是一个命令结果,那么对这个命令的结果的每一行做循环处理
如果是一个字符串,那么对这个字符串只作一次处理
如:FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
即使使用"Delims=[字符] Tokens=x"的功能也是只是把当前行的进行分割后的某一个项进行传递到循环语句中
而不能循环的对一行字符串进行逐个循环,想要实现类似与C#中的string.Split('字符')的功能
最后研究出的方法就是使用goto语句强制循环整个For语句的方法来实现
代码如下:
@echo off&title 字符串切割 set string=aaa/bbb/ccc :split rem 把要切割字符串按照/符号分割开,并取得分割后的第一个的值 rem 再把分割后的剩下的值重赋予环境变量string,并重新执行for rem 第一次 %string%=aaa/bbb/cc rem 第二次 %string%=bbb/ccc rem 第三次 %string%=ccc rem 第四次 %string%=空,结束goto,退出 for /f "tokens=1,* delims=/" %%i in ("%string%") do ( echo %%i set string=%%j ) if not "%string%"=="" goto split pause
运行结果:
—— 原文发表于2012-3-11 08:57
用原本是循环的for命令来切割字符串,这纯属于奇技淫巧,CMD中批处理的功能很弱,但得益于其语法异常宽松,可以玩出各种花样
这也是我为什么喜欢脚本语言的很大一部分原因。:)
如果您认为本文对得起您所阅读他所花的时间,欢迎点击右下角↘ 推荐。您的支持是我继续写作最大的动力,谢谢
作者:沧海月明
出处:http://www.cnblogs.com/xxcanghai/
本文地址:http://www.cnblogs.com/xxcanghai/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?