BAT批处理for循环时间变量,为何不能正确显示时间变化
bat吧
全部回复
仅看楼主
level 1
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /l %%i in (1,1,3) do (
set var =%%i
set time=%time%
echo !var! !time!
pause
)
2018年04月27日 02点04分 1
level 8
变量名可以包含空格,set var =%%i 这一句等号前加了空格,定义的变量名有四个字符,和后面的!var!不是同一个变量。
变量time是动态变量,set time=%time% 这一句用动态变量做变量名,就变成了普通变量,不能表示原来的含义了。
set /? 的帮助信息中有这样一段话:
“有几个动态环境变量可以被扩展,但不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个明确定义变量,那个定义会替代下面描述的动态定义”
2018年04月28日 04点04分 2
1