位置: 编程技术 - 正文

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脚本怎么运行)

  • 海关进口啥意思
  • 跨月发票税率开错了如何处理合适?
  • 材料暂估可以跨年度吗
  • 退休金合并其他收入缴纳个税
  • 购买理财产品计入交易性金融资产
  • 开票资料银行必须填写吗
  • 四种股利分配政策类型
  • 一般纳税人厂房出租怎么开票
  • 车船税在备注栏怎么报表
  • 怎么看自己公司是一般纳税人还是小规模纳税人
  • 结转发出材料会计分录
  • 企业减免税享受什么
  • 会费要交增值税吗
  • 资本公积转增股本什么意思
  • 增值税专用发票电子版
  • 长期股权投资的初始投资成本
  • 受托代为投资账务处理
  • 预收购货单位货款
  • 收到办公用品的普票怎么入账
  • 河道费怎么计算
  • 一般纳税人开技术服务发票
  • 营改增后房屋维修的发票可以抵扣吗?
  • 三证合一后章要换吗
  • 在会计实务中财务报表附注的披露方法不包括
  • 正回购和逆回购的区别
  • 出售交易性金融资产的记账凭证
  • 企业收到农产品普通发票
  • 月末结转本月已销产品成本
  • 未分配利润是怎么算出来的
  • nod32kui.exe - nod32kui是什么进程 作用是什么
  • 电脑中毒后如何不装系统清理掉
  • 支付给代理机构的手续费
  • 息税前利润和税前净利润的关系
  • 微软即将终止当前系统版本
  • 软件企业职工培训费税前扣除标准
  • 结算应付职工薪酬怎么算
  • 若依框架权限控制
  • 企业在什么情况下会被列入经营异常
  • 加速折旧的企业
  • 发票已开,款未到的会计分录
  • 小企业会计准则没有以前年度损益调整科目
  • 什么是合伙企业?它的特点有哪些?
  • java的范式
  • PHPCMS 是 ThinkPHP 开发的吗?
  • python计算集合交集并集个数
  • 税务局报季度税
  • 开发研究的定义
  • 营改增后简易计税是多少税率
  • 为什么购买办公用品
  • 应收账款无法收回会计分录
  • 应付账款与实际付款有差异如何分录
  • 现金抵用券使用说明怎么写
  • 代金券的利弊有哪些方面
  • 哪些收入属于免增值税
  • 损益明细表计提企业所得税
  • 银行扣掉的手续费怎么算
  • 会务费发票开普票还是专票
  • 预收账款可以挂在应收账款
  • sql server 修改
  • linux文件系统损坏
  • windows7内部版本7601激活密钥
  • Windows 10 PC/Mobile Build 14965预览版推送:改进PC端
  • windows server 开始菜单
  • winnook.exe - winnook是什么进程
  • win8命令提示符管理员怎么打开
  • Win10技巧:如何开启隐藏的锁屏时间设置项
  • squid详细
  • iptables配置详解
  • 平板电脑安装的是什么格式的软件
  • linux怎么cd
  • easyui demo
  • android开发环境安装步骤
  • 基于怎么用
  • rd命令是什么
  • jquery和angularjs的区别
  • csgo视角指令锁定枪械摇晃
  • 留抵税额过多怎么办
  • 保险公司优惠的款项什么时候退款
  • 南京税务证明怎么打印
  • 长春税务局电话朝阳区
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设