Board logo

标题: [文件操作] 批处理怎么连续输出当前时间? [打印本页]

作者: wenlong445445    时间: 2010-6-25 12:08     标题: 批处理怎么连续输出当前时间?

每次输出的时间都是第一次运行程序时的时间。
问下怎么才能输出执行这段代码时的时间呢。
比如要输出10次,每次都要是当时的系统时间。

[ 本帖最后由 wenlong445445 于 2010-6-25 14:13 编辑 ]
作者: 随风    时间: 2010-6-25 13:48

请不要用代码说明你的意图,用文字。
作者: wenlong445445    时间: 2010-6-25 14:10

没有注意马上就改
就是想知道一下怎么才能连续的输出当前时间,比如一个循环连续的输出当前时间,中间延时100秒。
比如第一次输出的是12:00:00,
第二次输出的是12:01:50

[ 本帖最后由 wenlong445445 于 2010-6-25 14:12 编辑 ]
作者: zcydez    时间: 2010-6-25 14:16

@cls
@echo %time%
@%0
作者: wenlong445445    时间: 2010-6-25 14:21

谢谢
@echo off
for /l %%i in (1,1,10) do (
@cls
@echo %time%
@%0
ping -n 10 127.0.0.1>null
)
pause
这样写对不,我想要的是多次输出当前时间,每隔一会就输出一次。

[ 本帖最后由 wenlong445445 于 2010-6-25 14:26 编辑 ]
作者: renmingwu    时间: 2010-6-25 15:09

  1. @echo off
  2. :time
  3. echo 现在时间是:
  4. echo "%date:~0,10% %time:~0,8%"
  5. ping -n 5 127.0.0.1>nul
  6. goto time
复制代码



刚才没看到输入10次,用for就可以10次。

[ 本帖最后由 renmingwu 于 2010-6-25 15:13 编辑 ]
作者: broly    时间: 2010-6-25 17:42

利用ping命令可以实现大概的延时。用VBS可以比较精确延时。
下面用ping实现粗略的100秒延时10次:

  1. @echo off
  2. for /l %%i in (1 1 10) do (
  3. echo 开始时间:%time%
  4. ping -n 110 127.1>nul
  5. echo 结束时间:%time%
  6. echo.
  7. echo.
  8. )
  9. pause>nul
复制代码

[ 本帖最后由 broly 于 2010-6-25 17:45 编辑 ]
作者: pingdan    时间: 2010-6-25 20:29

以上两个的运行结果不对啊.
作者: sgaizxt001    时间: 2010-6-25 22:13

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,10) do call :lp
  4. pause
  5. goto :eof
  6. :lp
  7. echo !time!
  8. ping 127.1 -n 11 >nul
复制代码
因为ping的延迟误差加上call的时间消耗,结果不精确,循环的次数越多,误差就越大
听zqz的,修该了代码,误差有所减小

[ 本帖最后由 sgaizxt001 于 2010-6-25 23:34 编辑 ]
作者: zqz0012005    时间: 2010-6-25 23:22

call echo %%time%%
或者开启变量延迟,echo !time!
作者: zqz0012005    时间: 2010-6-25 23:45     标题: 回复 9楼 的帖子

开启了变量延迟后,为什么要用call呢?
作者: sgaizxt001    时间: 2010-6-26 02:11

可以不用call,不过测试误差都是20到50MS




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2