变量延迟 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! 显示的就是复合语句中即时得到的值。
分享到:
相关推荐
- 变量延迟:允许脚本在循环中动态更新变量值。 **17. ATTRIB 显示或更改文件属性** - 用于显示或更改文件的属性,如只读、隐藏等。 #### 第二节:常用特殊符号 - **@**:用于禁止命令行回显。 - **%**:用于引用...
* setlocal 与 变量延迟:setlocal命令用于设置局部变量,变量延迟用于延迟变量的赋值。 二、FOR 命令详解 FOR命令用于循环遍历文件或目录。FOR命令的参数有: * /d:FOR命令的/d参数用于循环遍历目录。 * /R:...
变量延迟,即“delayed expansion”,是指在批处理脚本运行时,变量的值直到真正需要被引用的那一刻才被计算和替换。与之相对的是即时扩展,即变量在被定义或在脚本的上下文中首次遇到时就立即计算其值。这种差异...
可以实时高亮正在编辑的代码,无任何延迟 2、自动补全 输入时实时弹出下拉框显示相关信息(如输入goto则显示代码中的标签) 3、命令帮助台及气泡 可以实时获取正在编写的命令帮助,实时获得命令帮助...
在某些情况下,你可能需要在for循环内部改变变量的值,这就需要启用延迟环境变量扩展。以下是使用这种方法的例子: ```batch @echo off setlocal enabledelayedexpansion set /a counter=1 for /L %%i in (1,1,10) ...
这部分涉及更复杂的编程概念,如界面设计、条件分支、循环、子程序、自动下载、命令行压缩解压、调用VBScript、批处理转成可执行文件、时间延迟、模拟进度条、特殊字符输入、随机数应用、变量嵌套和命令嵌套等。...
- setlocal与变量延迟,允许局部变量的作用范围和延迟变量的扩展。 特殊符号方面,包括: - @命令行回显屏蔽符。 - %批处理变量引导符。 - >和>>重定向符,分别用于将命令输出重定向到文件或追加到文件。 - <、>&、...
这部分涵盖更复杂的编程技术,如界面设计、条件语句、循环语句、子程序、自动下载、压缩解压、调用VBScript、批处理转成可执行文件、时间延迟、模拟进度条、特殊字符输入、随机数应用和变量嵌套与命令嵌套。...
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`循环重复执行某些操作直到满足终止条件。 #### 七、批处理文件在系统启动中的...
- **setlocal与变量延迟**:用于局部化变量的作用域并延迟变量的扩展。 - **ATTRIB**:显示或更改文件属性。 - **""、,、;、()、!**:分别代表字符串界定符、逗号、分号、括号、感叹号。 ### 二、FOR命令详解 ####...
- **SETLOCAL 与 变量延迟**:设置局部环境变量,以及如何使用变量延迟扩展。 - **ATTRIB 显示或更改文件属性**:查看和修改文件属性。 **2. 常用特殊符号** - **@ 命令行回显屏蔽符**:隐藏命令执行。 - **% ...
批处理中的变量设置使用“setlocal enabledelayedexpansion”命令来延迟变量的扩展,这是为了处理一些复杂的批处理逻辑。 “for”循环是批处理中用于重复执行一组命令的命令。接下来,教程还会涉及特殊字符和符号的...
- `setlocal enableextensions enabledelayedexpansion`:启用延迟扩展,允许在脚本中动态计算变量值。 - 定义函数并调用函数: ```batch :function_name commands goto :eof call :function_name ``` ####...
9. **批处理技巧**:比如使用`delayedexpansion`来延迟变量扩展,处理脚本内部的变量变化。 经典批处理程序往往包含了丰富的实践案例,如`精品批处理源代码327例-经典收藏版.exe`可能包含多种场景下的批处理脚本...
16. **SETLOCAL** 和 **ENDLOCAL**:启用或禁用批处理中的环境变量变化,配合DELAYEDEXPANSION可以实现变量延迟扩展。 17. **ATTRIB**:查看或修改文件的属性,如隐藏、只读等。 **特殊符号** 1. **@**:命令行...