bat-延迟环境变量

延迟环境变量的用途

  1. 非延迟环境变量:执行命令的时候,命令解释器会先将命令读取,如果命令中有环境变量,那么就会将变量的值先读取来出,然后在运行这条命令,如:echo %windir%,当我们执行这条命令的时候,命令解释器会先读出%windir%的值,即c:\windows,然后执行echo,得到的结果是屏幕上显示出c:\windows。但是当我们在执行一条命令的时候,命令解释器将环境变量的值读出来之后,环境变量再发生变化,此时再执行命令就是变量改变前的值。
set a=1
set a=2 & echo %a%
echo %a%
  1. 延迟环境变量:当开启延迟环境变量之后,命令解释器不再是运行命令前去读取环境变量,而是用到环境变量的时候才去读取。想使环境变量延迟读取,我们就要用到!name!来代替%name%。使用最多的地方就是for和if语句中,因为for和if作为一个语句,后面可以跟许多命令,不管跟多少命令,但他还是一条命令,所以说在for和if中应用的最多。
setlocal EnableDelayedExpansion
set a=1
set a=2 & echo !a!
echo %a%
设置延迟环境变量
  1. cmd下开启/关闭延迟环境变量
    延迟环境变量在cmd下默认是关闭的
cmd /v:on    //开启延迟环境变量

cmd /v:off   //关闭延迟环境变量
  1. 批处理中开启/关闭延迟环境变量
setlocal EnableDelayedExpansion    //开启延迟环境变量

setlocal DisableDelayedExpansion   //关闭延迟环境变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值