dos批处理处置中,for循环中使用date和time在不同时间取时间值却都相同。怎回事
dos批处理处理中,for循环中使用date和time在不同时间取时间值却都相同。怎回事?
循环从1到10,每执行一次循环就取一次当前时间:
@echo off
setlocal EnableDelayedExpansion
for /l %%i in (1,1,100) do (
set mydate=%date:~0,10%
set mytime=%time:~0,4%
echo TIME:!mydate!:!mytime! %%i
pause
)
执行结果,每个循环里面的时间都是一样的,都是第一次显示的时间!!!!!!!!!!!!
我这几乎就是网络拔下来的成品改的,好像没有啥错误阿!
太奇怪了,请路过大侠帮我看什么原因呢?
------解决思路----------------------
果然是这样,应该是在执行整个批处理前就已经把时间全部替换好了,解决办法很简单,把设置时间变量的语句放到另外一个bat中,然后用 call xxxx.bat.
循环从1到10,每执行一次循环就取一次当前时间:
@echo off
setlocal EnableDelayedExpansion
for /l %%i in (1,1,100) do (
set mydate=%date:~0,10%
set mytime=%time:~0,4%
echo TIME:!mydate!:!mytime! %%i
pause
)
执行结果,每个循环里面的时间都是一样的,都是第一次显示的时间!!!!!!!!!!!!
我这几乎就是网络拔下来的成品改的,好像没有啥错误阿!
太奇怪了,请路过大侠帮我看什么原因呢?
------解决思路----------------------
果然是这样,应该是在执行整个批处理前就已经把时间全部替换好了,解决办法很简单,把设置时间变量的语句放到另外一个bat中,然后用 call xxxx.bat.