位置: 编程技术 - 正文

BAT批处理中的字符串处理详解(字符串截取)(bat批量处理)

编辑:rootadmin

推荐整理分享BAT批处理中的字符串处理详解(字符串截取)(bat批量处理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:bat 批处理,bat 批处理,batch批处理,batch批处理,bat 批处理文件,bat批处理命令教程,bat批处理文件的语句,bat 批处理,内容如对您有帮助,希望把文章链接给更多的朋友!

下面对这些功能一一进行讲解。

  1、截取字符串

  截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符。举例说明其基本功能:

  当然,上面的例子只是将字符串处理的基本功能展示出来了,还看不出字符串处理具体有什么用处。下面这个例子是对时间进行处理。

2、替换字符串  替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串。举例说明其功能:

  对于上面的例子有一点说明,对比两个echo aa = %aa%可以发现,如果要修改变量aa的内容的话,就需要将修改结果“%aa:中国=中华人民共和国%”赋值给变量aa。上面的字符串截取也有着同样的特点。

3、字符串合并

  其实,合并字符串就是将两个字符串放在一起就可以了。举例说明:

  同样,如果要改变变量aa的内容的话,就需要将合并结果“%aa%%bb%”赋值给变量aa。

4、扩充字符串

  “扩充”这个词汇来自于微软自己的翻译,意思就是对表示文件路径的字符串进行特殊的处理,具体功能罗列如下:  =========================================  ~I - 删除任何引号("),扩充 %I  %~fI - 将 %I 扩充到一个完全合格的路径名  %~dI - 仅将 %I 扩充到一个驱动器号  %~pI - 仅将 %I 扩充到一个路径  %~nI - 仅将 %I 扩充到一个文件名  %~xI - 仅将 %I 扩充到一个文件扩展名  %~sI - 扩充的路径只含有短名  %~aI - 将 %I 扩充到文件的文件属性  %~tI - 将 %I 扩充到文件的日期/时间  %~zI - 将 %I 扩充到文件的大小  %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充  到找到的第一个完全合格的名称。如果环境变量名  未被定义,或者没有找到文件,此组合键会扩充到  空字符串  可以组合修饰符来得到多重结果:  %~dpI - 仅将 %I 扩充到一个驱动器号和路径  %~nxI - 仅将 %I 扩充到一个文件名和扩展名  %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名  %~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充  到找到的第一个驱动器号和路径。  %~ftzaI - 将 %I 扩充到类似输出线路的 DIR  =========================================  以上内容引用于for /&#;帮助信息。其中的I代表变量I,不过需要说明的是,不是所有的变量都能够进行扩充的,有两个条件:1、该字符串代表一个文件路径;2、变量要用%x来表示,x可取a-z A-Z 0-9共个字符中的任意一个。举例说明:

  其中的%0是批处理里面的参数,代表当前运行的批处理的完全路径。类似的还有%1-%9,分别代表传递来的第1-9个参数。例子如下:

  其中,变量aa在之前是不可以扩充的,通过call命令并将aa作为参数传递给子函数:deal,将aa变量转换成了变量%1,即符合%x格式,从而可以进行字符串扩充。  至于%x中x取a-z A-Z的形式,可以复习一下for语句,for语句里面的变量就是用%x来表示的,因而可以直接进行扩充。

下面是其它网友的补充:注意是与c语言做了一些对比

首先说一下,批处理和高级语言不同,没有字符串处理函数,比如strcat之类的,但是却可以利用环境变量来实现这些函数的功能。本文对照C语言中的字符串处理函数,讲解在批处理中的实现方法。

首先说一下字符串的存储,在C语言中,采用字符数组或者字符指针来存储字符串,而BAT中没有这些东东,所以要依靠环境变量来存储。设置环境变量的语句为set语句,本文不详细介绍了,参考set /&#;语句。

1、C语中的strcpy函数,将一个字符串复制到另一个字符型指针或字符数组,覆盖原来的字符串。

C语言中的调用方法:strcpy(目标字符串,源字符串)

在批处理中的实现方法:

BAT批处理中的字符串处理详解(字符串截取)(bat批量处理)

set 目标字符串=%源字符串%

示例:

2、C语中的strcat函数,将一个字符串连接到另一个字符型指针或字符数组的末尾。

C语言中的调用方法:strcat(目标字符串,源字符串)

在批处理中的实现方法:

set 目标字符串=%目标字符串%%源字符串%

示例:

3、字符串截取,C中没有这种函数,不过可以通过语句实现,不再介绍,直接说批处理的。

set 目标字符串=%源字符串:~起始值,截取长度%

注意,起始值从0开始!截取长度是可选的,如果省略逗号和截取长度,将会从起始值一直截取到字符串的结尾。

示例:

4、C语中的strlen函数,取得字符串的长度。

C语言中的调用方法:strlen(字符串)

在批处理中的实现方法是利用goto和标签,形成循环结构,不断将字符串截短1字符,并用变量记录截短的次数,直到字符串变成空串。

示例:

5、C语中的strchr函数,在一个字符串中查找一个字符的首次出现位置,找到时返回所在位置,找不到时返回0值。

批处理中的思路:不断截短字符串,并取截短后字符串中的首字符,和要求的字符比较,如果相同就利用goto语句跳出循环,输出结果,如果没有相同的字符,执行到最后就输出0值。

示例:

引用:最后出几道题,看看大家学习的怎么样!(1)如何实现C语言中strstr函数的功能?提示:strstr函数的功能是在字符串1中查找字符串2,找到时返回串2首次出现的位置,否则返回0值。与strchr区别就是,第二个参数是字符串,而不是字符了。

(2)如何用批处理构建while循环?提示:while循环一般格式为:while(表达式){循环体[break|continue;]循环体}其中,循环体为0条或多条语句,break用于跳出循环,continue用于直接判断表达式并决定是否进入下一次循环。一般执行顺序:首先判断表达式,如果成立则进入循环,循环体执行完毕后再次判断表达式的值,决定是否再次循环。

(3)如何用批处理构建do-while循环?提示:do-while循环一般格式为:do{循环体[break|continue;]循环体}while(表达式);各个语句的解释参照while循环。一般执行顺序:首先进入循环,循环体执行完毕后判断表达式的值,表达式成立则再次进入循环。

bat脚本显示本机IP地址的两种方法(内网ip) 实现代码一:通过routeprint实现@echoofffor/f"tokens=4"%%ain('routeprint^|findstr0.0.0.0.*0.0.0.0')do(setIP=%%a)echo%IP%实现代码二:@echoofffor/f"tokens="%%iin('ipconfig^|find/i"ipaddr

批处理bat设置固定IP地址和自动IP地址 在我个人的使用经验中,我有不同的工作环境,比如公司和家里,公司要求固定IP,而家里则使用自动获取IP的方式,所以我就在网上找了这段代码,并

MSG命令使用详解 最近在编写FTP上传数据的批处理时,需要用到局域网内传输数据来提示错误,突然想起忘了N久没用的命令(netsend),结果在win7下cmd运行netsend/运行失败

标签: bat批量处理

本文链接地址:https://www.jiuchutong.com/biancheng/371839.html 转载请保留说明!

上一篇:批处理中如何判断参数中含有某些字符串?(批处理中如何判断当前文件中是否存在一个子目录)

下一篇:bat脚本显示本机IP地址的两种方法(内网ip)(bat脚本怎么运行)

  • 锐捷财税怎么样
  • 向银行借款存入银行会引起
  • 进项税未抵扣进账了怎么处理
  • 发票没有银行账号可以收不
  • 固定资产转让开票金额是净值
  • 进项税发票认证期限多长时间
  • 无偿捐赠设备该如何做账务处理呢?
  • 代理进口业务
  • 待摊费用跨年冲销如何入账?
  • 购进原材料没有发票怎么做分录
  • 雇主责任险能否证明劳动关系
  • 关于发票入账的会计分录
  • 医疗服务免税发票怎么开
  • 材料发票清单
  • 坏账核销后又收回的,增加坏账准备,并转入当期损益
  • Windows11安装不了空件怎么处理
  • windows10如何关闭安全中心防护
  • 修改系统帐户用什么软件
  • PHP:mb_send_mail()的用法_mbstring函数
  • 企业定率征收的税率是多少
  • 想做酒水批发的生意怎么做?
  • 补充养老保险费扣除限额
  • nrm报错
  • 银行存款日记账对方科目写什么
  • 企业研发费用的归集
  • 堡垒山是哪个国家
  • php运用
  • 加油费属于什么费用类别的
  • 个人所得税的现状分析
  • 微信小程序详细教程
  • elementui form rules
  • php array_fill
  • 收回外币应收账款如何处理
  • excel&命令
  • 专用发票抵扣联是什么意思
  • 为什么分红不影响损益
  • 缴纳印花税的会计凭证怎么做
  • php的do while语句
  • js与或运算符
  • 企业管理费会计怎么做账
  • 海关报关单位注销操作规程
  • 分组计数什么意思
  • 生育津贴现在可以打个人账户么
  • 增值税勾选统计后如何导出明细表
  • 小微企业能申请高新吗
  • 如何编制试算平衡表图示
  • 建筑业的人工费是什么
  • 注册资本认缴制度
  • 工资和社保基数的关系
  • 发票当月没开
  • 生产成本如何做核算
  • 资产减值损失属于损益类的收入还是费用
  • 多收发票会计分录
  • 股本金退出要交税吗?
  • 残疾人就业保障金
  • 会计上有哪些
  • 用工资冲借款报税可以吗
  • 盈余公积必须提折旧吗
  • 如何更换会计账号
  • 必应big
  • win7 更新
  • ubuntu和windows哪个流畅
  • linux系统文件压缩命令
  • xp系统桌面图标大小怎么调整
  • win8怎样设置将文件保存到d盘
  • js怎么理解
  • unity如何避免碰撞穿透
  • jquery常用操作
  • 序列化和反序列化是什么意思
  • 添加ie
  • jquery.ui
  • Node.js中的construct构造函数
  • three.js碰撞检测
  • jquery ui autocomplete
  • pythoni脚本
  • android点击事件onclick用法
  • unity3d 场景
  • 深圳龙华街道办电话
  • 进出口货物的报关时限
  • 专家咨询费包括哪些内容
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设