Bat脚本之延时变量cmd /v:on

延时环境变量作用即工作原理:

​ 当准备执行一条命令时,命令解释器会检查语句中是否有环境变量,如果有就会先将变量的值读取出来赋给变量,就像初始化,会将已知变量先赋值。这会导致语句中多次使用的某个环境变量的值都是一样的都是一个定值。

​ 延时环境变量,开启方式如下,使用!xx!包裹,不是%xx%,会在变量使用的时候才进行读值赋值,不会在一开始就赋值。

举个例子:

C:\Users\98483>set it=1 C:\Users\98483>set /a it+=1 & echo %it% 21 C:\Users\98483>echo %it% 2 我们需要的输出是22 要加1,但是由于解释器会在开始的时候就给环境变量附上值,所以echo %it%没有加1,但是再单独执行echo %it% 会发现it=2 cmd /v 开启延时变量 C:\Users\98483>cmd /v Microsoft Windows [版本 10.0.19042.928] (c) Microsoft Corporation。保留所有权利。 C:\Users\98483>set /a it+=1 & echo %it% 33
  1. cmd下开启/关闭延迟环境变量
cmd下开启或延迟环境变量用/v参数: cmd /v:on //开启延迟环境变量 直接cmd /v 也可以 cmd /v:off //关闭延迟环境变量 cmd 字符串也可以使用: cmd /v /c "set it=1 & set /a it+=1 & echo !it!"

  1. 批处理中开启/关闭延迟环境变量
在批处理中开启或关闭延迟环境变量用setlocal命令: setlocal EnableDelayedExpansion //开启延迟环境变量 setlocal DisableDelayedExpansion //关闭延迟环境变量

__EOF__

本文作者komomon
本文链接https://www.cnblogs.com/forforever/p/14906582.html
关于博主:喜欢读书、旅行、爬山。评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   komomon  阅读(490)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示