ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

延迟环境变量扩展

2022-06-24 10:01:29  阅读:151  来源: 互联网

标签:变量 CMD 扩展 替换 echo var 变量名 环境变量 延迟


延迟变量全称"延迟环境变量扩展",要理解这个东西,我们还得先理解一下什么叫扩展

 

CMD在解释我们的命令的时候,首先会读取命令行一条完整的命令,然后对其进行一些命令格式的匹配操作,看你所输入的命令格式是不是符合他的要求.

 

如果我们要在我们的命令中引用一些变量,那么我们如何让CMD在解释我们的命令时,能识别出这个变量呢?这时我们就可以在变量名字两边加一个%号,如%name%.当CMD在对读取我们的整行

 

命令进行格式匹配的时候,就会发现name这个字符两边加了%号,就不会把他当作普通字符处理,而是会把他当作一个变量处理,变量名叫name!然后CMD就会找到变量名对应的值,用变量名的值替换掉这个变量名字(name),(如果变量名不存在值,就返回空值).再将这个替换好并且匹配的命令执行!这个替换值的过程,就叫做变量扩展,说白了就是把变量的名字,用他的值给替换掉后执行!也就是批处理如何识别一个变量的过程.

 

注意:这里只是变量的扩展的意思,不是延迟环境变量扩展,要理解延迟环境变量扩展,必须先理解什么是变量的扩展,也就是批处理如何识别一个变量的过程.

变量扩展

如:

@echo off
set test=123
set var=%test%
echo %var%
pause

CMD在读取到echo %var%这句命令后,就会进行匹配操作,它马上就发现var字符两边有%号,这时他就会把他当作一个变量处理,查看这个var变量名是不是有值,如果有就用他的值把变量名var给替换掉,这里我们的VAR在上一条命令set var=%test%中,给var赋值为%test%,所以他会用test变量把%var%这个变量名替换掉,替换后的结果就为echo %test%了.这些步骤都是CMD进行匹配操作的步骤,匹配完后,他再执行echo %test%这条语句,这时它会发现test也是一个变量,就会继续网上找,把123替换过来,这时我们的CMD中就会echo出一个123了.

标签:变量,CMD,扩展,替换,echo,var,变量名,环境变量,延迟
来源: https://www.cnblogs.com/yifengs/p/16407707.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有