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.