读书人

批处理推延变量

发布时间: 2012-07-22 19:31:17 作者: rapoo

批处理延迟变量

变量延迟?? 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! 显示的就是复合语句中即时得到的值。

读书人网 >操作系统

热点推荐