- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 环境变量延迟扩展(上).pdf
4.1 环境变量延迟扩展(上)
4.1 环境变量延迟扩展(上)
《批处理⼊门⼿册》
四. 环境变量延迟扩展(上)
4 .1 学习环境变量延迟扩展
学习要点:
⼀、什么是延迟环境变量扩展?
⼆、批处理变量延迟 解
⼀,什么是延迟环境变量扩展?
原⽂地址:http://bbs.bathome .cn/thread-3083-1-1.html
延迟变量全称延迟环境变量扩展,要理解这个东西,我们还得先理解⼀下什么叫变量
扩展!
CM 在解释我们的命令的时候,⾸先会读取⼀条完整的命令,然后对其进⾏⼀些命令格
式的匹配操作,看你所输⼊的
命令格式是不是符合它的要求.如果我们要在命令中引⽤⼀些变量,那么我们如何让
CM 在解释我们的命令时,能识别
出这个变量呢?这时我们就可以在变量名字两边加⼀个%号,如%name%.当CM 在读取
我们的整条命令进⾏格式匹配的时
候,就会发现name这个字符两边加了%号,就不会把它当作普通字符处理,⽽是会把它当
作⼀个变量处理,变量名叫name
然后CM 就会找到变量名对应的值,⽤该值替换掉这个变量名字(name),(如果变量名
不存在值,就返回空值) .再将这
个替换好并且匹配的命令执⾏!这个替换值的过程,就叫做变量扩展,说⽩了就是把变量
的名字,⽤它的值给替换掉后
执⾏!也就是批处理如何识别⼀个变量的过程.(注意:这⾥只是变量的扩展的意思,不是
延迟环境变量扩展,要理解延
迟环境变量扩展,必须先理解什么是变量的扩展) 也就是批处理如何识别⼀个变量的过
程.
例1,
@echo off
set var=test
echo %var%
pause
CM 在读取到echo %var%这句命令后,就会进⾏匹配操作,它马上就发现var字符两边
有%号,这时CM 就会把它当作⼀
个变量处理,查看这个var变量名是不是有值,如果有就⽤该值把变量名var给替换掉,这⾥
我们的var在上⼀条命令set
var=test 中,给var赋值为test ,所以CM 会⽤test把%var%这个变量名替换掉,替换后的结
果就为echo test 了.这些步
骤都是CM 进⾏匹配操作的步骤,匹配完后,他再执⾏echo test这条语句,这时我们的
CM 中就会echo出⼀个test 了.
什么是环境变量扩展知道了,那什么是延迟环境变量扩展呢?
在理解环境变量扩展时,我们知道CM 在解释命令时,⾸先会把⼀条完整的命令进⾏读
取,然后进⾏匹配操作,匹配时
它会把命令⾥的变量⽤变量的值给替换掉,然后执⾏这个替换好的命令.问题就出在⼀
条完整的命令,在BAT 中,IF
FOR这样的命令都可以加括号,将⼀些命令嵌套在⾥⾯执⾏.这样的话对于⼀条可以加
扩号嵌其他命令的命令,他的完
整格式就是for %%i in ()这样⼀个整体.此时,如果我们如果在括号⾥⾯嵌⼊⼀些设置
变量值的命令,就会出现
问题了!
例2 ,
@echo off
for /l %%i in (1,1,5) do (
set var=%%i
echo %var%
)
pause
执⾏后会显⽰5个空⾏的错误提⽰!为什么?根据我们上⾯说的知识来理解。
通过这两个例⼦,⼤家应该已经理解,如果只有环境变量扩展这个过程的话,如果我们在
可以嵌套命令的命令中执⾏
赋值操作时,会让我们的BAT出现给变量赋值的问题.那么这个时候延迟环境变量扩
展,这个概念就被提出来了。
在批处理中,我们可以⽤setloacl enabledelayedexpansion 这个命令来启⽤延迟环境变
量扩展 ,在我们启⽤
了延迟环境变量扩展后,当CM 在解释含有嵌套格式的命令时,他会把嵌套的命令⼀
条⼀条的先执⾏⼀次,然后再进
⾏匹配操作,这样我们的赋值操作就会完成.并且在延迟环境变量扩展启⽤后,CM 会
⽤!号来判断这是不是⼀个变量
。如没启⽤前变量⽤%name%这样的格式判断,启⽤后就⽤!name !这样的格式判断了,这
个符号我们需要注意!
例3 ,
@echo off
setlocal enabledelayedexpansion
set var= 1
for /l
您可能关注的文档
- 1-20KVA 接线方式即延时时间.xls.pdf
- 12第6章 螺纹结合的精度设计与检测.pdf
- 2004年钢铁全行业可望保持高增长.pdf
- 2013 UDP流量对TCP往返延迟的影响.pdf
- 2013一级建造师机电模考一答案.pdf
- 2014--力劲集团介绍+压铸机介绍.pdf
- 5.3 压缩模设计及制造.ppt
- 8 塑料压制成型机.pdf
- AWS A5.9 不锈钢氩弧焊机标准.pdf
- BSP、G、NPT螺纹尺寸规格.pdf
- 职业技术学院2024级工业机器人技术(安装与维护)专业人才培养方案.docx
- 职业技术学院2024级应用化工技术专业人才培养方案.pdf
- 职业技术学院2024级软件技术(前端开发)专业人才培养方案.pdf
- 职业技术学院2024软件技术专业人才培养方案.docx
- 职业技术学院2024级信息安全技术应用(安全运维)专业人才培养方案.docx
- 职业技术学院2024级新能源汽车检测与维修技术(车辆鉴定与评估)专业人才培养方案.pdf
- 职业技术学院2024级石油炼制技术专业人才培养方案.pdf
- 职业技术学院2024级环境监测技术专业人才培养方案.docx
- 职业技术学院2024级汽车制造与试验技术专业人才培养方案.pdf
- 职业技术学院2024级信息安全技术应用专业人才培养方案.pdf
文档评论(0)