zoukankan      html  css  js  c++  java
  • Bat脚本之延时变量cmd /v:on

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

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

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

    举个例子:

    C:Users98483>set it=1
    C:Users98483>set /a it+=1 & echo %it%
    21
    C:Users98483>echo %it%
    2
    
    我们需要的输出是22 要加1,但是由于解释器会在开始的时候就给环境变量附上值,所以echo %it%没有加1,但是再单独执行echo %it% 会发现it=2了
    
    cmd /v  开启延时变量
    C:Users98483>cmd /v
    Microsoft Windows [版本 10.0.19042.928]
    (c) Microsoft Corporation。保留所有权利。
    
    C:Users98483>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   //关闭延迟环境变量
    
  • 相关阅读:
    Centos7安装Typecho详细教程
    Liunx 安装 Nessus
    攻防世界 web进阶练习 NewsCenter
    针对Linux 文件完整性监控的实现
    ParrotSec 中文社区 QQ群认证 Openssl解密
    中转Webshell 绕过安全狗(二)
    中转Webshell 绕过安全狗(一)
    Kali Linux Web渗透测试手册(第二版)
    JavaScript指定断点操作
    年轻程序员如何快速成长
  • 原文地址:https://www.cnblogs.com/forforever/p/14906582.html
Copyright © 2011-2022 走看看