`
jaisok
  • 浏览: 5281 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

批处理延迟变量

 
阅读更多

变量延迟   setlocal EnableDelayedExpansion

 

 

在复合语句中才要使用延迟变量。也就是说在复合语句中或者外面是访问不到复合语句中定义的变量,只能通过变量延迟来解决

 

@echo off
for /l %%i in (1 1 10) do (
set var=%%i
echo %var%
)

结果:显示10个echo处于关闭状态。

分析:cmd把var的值当作复合语句之前的值来引用,

这就是因为没有开启 延迟变量 的缘故,cmd把var的值当作复合语句之前的值来引用,

 

@echo off
setlocal EnableDelayedExpansion
set var=abc
for /l %%i in (1 1 10) do (
set var=%%i
echo %var%
echo !var!
)
pause

 

结果为:abc 1 abc 2 abc 3……

分析:%var% 显示的结果是复合语句之前变量var的值,
而 !var! 显示的就是复合语句中即时得到的值。

分享到:
评论

相关推荐

    dos批处理教程(实用)

    - 变量延迟:允许脚本在循环中动态更新变量值。 **17. ATTRIB 显示或更改文件属性** - 用于显示或更改文件的属性,如只读、隐藏等。 #### 第二节:常用特殊符号 - **@**:用于禁止命令行回显。 - **%**:用于引用...

    批处理基础 FOR命令详解 批处理中的变量 set命令详解 if命令讲解 DOS编程高级技巧

    * setlocal 与 变量延迟:setlocal命令用于设置局部变量,变量延迟用于延迟变量的赋值。 二、FOR 命令详解 FOR命令用于循环遍历文件或目录。FOR命令的参数有: * /d:FOR命令的/d参数用于循环遍历目录。 * /R:...

    dos set 变量延迟说明

    变量延迟,即“delayed expansion”,是指在批处理脚本运行时,变量的值直到真正需要被引用的那一刻才被计算和替换。与之相对的是即时扩展,即变量在被定义或在脚本的上下文中首次遇到时就立即计算其值。这种差异...

    批处理程序编程软件

     可以实时高亮正在编辑的代码,无任何延迟 2、自动补全  输入时实时弹出下拉框显示相关信息(如输入goto则显示代码中的标签) 3、命令帮助台及气泡  可以实时获取正在编写的命令帮助,实时获得命令帮助...

    bat中for循环,实现变量自增的2种方式

    在某些情况下,你可能需要在for循环内部改变变量的值,这就需要启用延迟环境变量扩展。以下是使用这种方法的例子: ```batch @echo off setlocal enabledelayedexpansion set /a counter=1 for /L %%i in (1,1,10) ...

    批处理教程大全.doc

    这部分涉及更复杂的编程概念,如界面设计、条件分支、循环、子程序、自动下载、命令行压缩解压、调用VBScript、批处理转成可执行文件、时间延迟、模拟进度条、特殊字符输入、随机数应用、变量嵌套和命令嵌套等。...

    Windows批处理高级教程精选合编

    - setlocal与变量延迟,允许局部变量的作用范围和延迟变量的扩展。 特殊符号方面,包括: - @命令行回显屏蔽符。 - %批处理变量引导符。 - >和>>重定向符,分别用于将命令输出重定向到文件或追加到文件。 - <、>&、...

    批处理教程 快速入门

    这部分涵盖更复杂的编程技术,如界面设计、条件语句、循环语句、子程序、自动下载、压缩解压、调用VBScript、批处理转成可执行文件、时间延迟、模拟进度条、特殊字符输入、随机数应用和变量嵌套与命令嵌套。...

    批处理标准教材_批处理了bat_

    1. **延迟环境变量扩展**:`SETLOCAL ENABLEDELAYEDEXPANSION`可以启用延迟扩展,允许在循环内部动态修改变量。 2. **错误处理**:使用`IF ERRORLEVEL`检查上一条命令的错误级别,或者用`PAUSE`暂停脚本以便查看...

    最全批处理教程

    `: 在启用延迟环境变量扩展时,用于引用延迟变量。 三、`FOR` 命令详解 `FOR` 命令用于循环处理文件、目录或字符串,其参数包括 `/D`(处理目录)、`/R`(递归处理)、`/L`(迭代数值范围)、`/F`(解析文件内容)...

    批处理使用技巧大全

    - `setlocal`和`endlocal`控制变量的作用范围,`setlocal`后设置的变量只在批处理内部有效。 5. **文件和目录操作**: - `copy`、`move`、`del`、`ren`分别用于复制、移动、删除和重命名文件。 - `mkdir`和`...

    批处理高级教程精选合编

    系统变量是预先定义好的,例如%CD%代表当前目录,而自定义变量则是用户在批处理文件中设定的变量。 set命令是用于定义和操作变量的重要命令。它不仅可以用来设置自定义变量,还能进行简单的数值计算,以及对字符串...

    手把手教你写批处理 批处理入门到精通

    这段代码首先设置了一个计数器变量`counter`,并通过`delayedexpansion`来延迟变量的展开。接着通过`if`语句进行条件判断,并利用`for`循环重复执行某些操作直到满足终止条件。 #### 七、批处理文件在系统启动中的...

    DOS批处理高级教程精选合编.pdf

    - **setlocal与变量延迟**:用于局部化变量的作用域并延迟变量的扩展。 - **ATTRIB**:显示或更改文件属性。 - **""、,、;、()、!**:分别代表字符串界定符、逗号、分号、括号、感叹号。 ### 二、FOR命令详解 ####...

    批处理高级教程精选.pdf

    - **SETLOCAL 与 变量延迟**:设置局部环境变量,以及如何使用变量延迟扩展。 - **ATTRIB 显示或更改文件属性**:查看和修改文件属性。 **2. 常用特殊符号** - **@ 命令行回显屏蔽符**:隐藏命令执行。 - **% ...

    批处理标准教材.pdf

    批处理中的变量设置使用“setlocal enabledelayedexpansion”命令来延迟变量的扩展,这是为了处理一些复杂的批处理逻辑。 “for”循环是批处理中用于重复执行一组命令的命令。接下来,教程还会涉及特殊字符和符号的...

    DOS批处理教程 批处理

    - `setlocal enableextensions enabledelayedexpansion`:启用延迟扩展,允许在脚本中动态计算变量值。 - 定义函数并调用函数: ```batch :function_name commands goto :eof call :function_name ``` ####...

    经典批处理程序(必备哦)

    9. **批处理技巧**:比如使用`delayedexpansion`来延迟变量扩展,处理脚本内部的变量变化。 经典批处理程序往往包含了丰富的实践案例,如`精品批处理源代码327例-经典收藏版.exe`可能包含多种场景下的批处理脚本...

    目前为止最全的批处理教程

    16. **SETLOCAL** 和 **ENDLOCAL**:启用或禁用批处理中的环境变量变化,配合DELAYEDEXPANSION可以实现变量延迟扩展。 17. **ATTRIB**:查看或修改文件的属性,如隐藏、只读等。 **特殊符号** 1. **@**:命令行...

Global site tag (gtag.js) - Google Analytics