@echo off&setlocal enabledelayedexpansion ,&setlocal enabledelayedexpansion 是什么意思
1个回答
展开全部
set是设置的意思,local是本地的意思,enable是能够的意思,delayed是延迟的意思,expansion是扩展的意思,合起来,就是:让变量成为局部变量,并延迟它的扩展行为
举个简单的例子来说明一下
@echo off
set num=0&&echo %num%
pause
本意是想对变量num赋值之后,再把这个值显示出来,结果,显示出来的并不是0,而是显示:ECHO 处于关闭状态。
之所以会出错,是因为“变量延迟”这个家伙在作怪。然后,我们开启变量延迟看一看
@echo off
setlocal enabledelayedexpansion
set num=0&&echo !num!
pause
这样就可以显示出结果“0”了。
明白了不?
说得直白一点,所谓的“变量扩展”,实际上就是很简单的这么一件事情:用具体的值去替换被引用的变量及紧贴在它左右的那对百分号。
语言组织能力实在不怎么样,这个语句在批处理中算的上是中高级的类型了,如果你想要详细了解的话,还需要百度“变量延迟”来找一些相应的资料进行学习,在这里我实在不能描述太多,简简单单的一个例子也说明不了问题,因为实际上变量延迟的用法在复合语句中有很多种应用方式,所以建议你通过搜索引擎去找一些相关资料。最后,祝你能早日学成,哈哈……希望我的回答能帮助到你!
举个简单的例子来说明一下
@echo off
set num=0&&echo %num%
pause
本意是想对变量num赋值之后,再把这个值显示出来,结果,显示出来的并不是0,而是显示:ECHO 处于关闭状态。
之所以会出错,是因为“变量延迟”这个家伙在作怪。然后,我们开启变量延迟看一看
@echo off
setlocal enabledelayedexpansion
set num=0&&echo !num!
pause
这样就可以显示出结果“0”了。
明白了不?
说得直白一点,所谓的“变量扩展”,实际上就是很简单的这么一件事情:用具体的值去替换被引用的变量及紧贴在它左右的那对百分号。
语言组织能力实在不怎么样,这个语句在批处理中算的上是中高级的类型了,如果你想要详细了解的话,还需要百度“变量延迟”来找一些相应的资料进行学习,在这里我实在不能描述太多,简简单单的一个例子也说明不了问题,因为实际上变量延迟的用法在复合语句中有很多种应用方式,所以建议你通过搜索引擎去找一些相关资料。最后,祝你能早日学成,哈哈……希望我的回答能帮助到你!
名片
2024-10-28 广告
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成...
点击进入详情页
本回答由名片提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询