利用批处理(BAT)读取字符串空行判断及其他

本文分享了在使用批处理(BAT)脚本来自动配置环境变量时遇到的问题,包括如何处理系统关键字的冲突以及在读取文本时判断空行的技巧。在处理空行时,可以通过if defined var进行不包含空行的判断,若需要考虑空格,可以利用set var=!var: =!移除空格再进行判断。
摘要由CSDN通过智能技术生成

最近要给一个项目发布产品安装包,使用到BAT来自动配置一些环境变量。

由于之前很少用BAT,在编写过程中,还是遇到不少坑。

在这里,把这些坑给摆出来,以免有些小白掉进去

系统关键字(感叹号!)冲突

由于是自动化部署,因此需要使用到循环,这里就不可避免的用到了延迟变量(setlocal enabledelayedexpansion)
有关延迟变量的知识,大家可以通过这篇文章涨一涨 http://www.jb51.net/article/29323.htm

延迟变量带来的一个问题就是,文本中的感叹号(!,xml文件中的注释)被替换掉了。
解决办法就是,在给文件中字符串进行赋值前,使用endlocal禁用掉延迟变量。
bat读取文本时,空行的判断
空行有两种类型,一种是不包括空格的换行,一种是包括空格的换行。
如果不判断空行,在使用echo时,会输出 echo处于关闭状态。这时如果需要对读取到的字符串进行替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值