Board logo

标题: 是否为停顿时间而烦恼? 进来看看有收获! [打印本页]

作者: kennyfan     时间: 2006-9-20 21:33    标题: 是否为停顿时间而烦恼? 进来看看有收获!

2K之后的系统没有choice,想实现停顿时间比较麻烦 如果各位有好的批处请贡献一下本人感激不尽
以下为我暂时所知的几个代码
1.精确度可达到0.001秒哦.3000为三秒
@echo off
  echo WScript.Sleep 3000 > time.vbs
  cscript //nologo time.vbs
  echo %time%
  for %%f in (time.vbs) do if exist %%f del %%f
  endlocal & goto EOF

2.这个比较好理解,利用for解析变量%time%并存为一个时间点,再利用set计算两个时间点的时间差,最后用if判断时间差是否达到设定的暂停时间.精确度可达到0.01秒.
@echo off
  call :ProcDelay 300
  echo %time%
  goto EOF
:ProcDelay
  for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
    :wait
    for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
    set /a diff_=%now_%-%start_%
  if %diff_% LSS %1 goto wait
  endlocal & goto EOF

3.想要最简单的还是下载个choice.exe的文件吧!可是如果去到其他人的机子里忘了带这个choice文件,那你建的批处理就基本等于废了!
choice /c y /n /t 2 /d y

[ Last edited by kennyfan on 2006-9-20 at 21:37 ]
附件 1: choice.zip (2006-9-20 21:33, 16.13 K, 下载附件所需积分 1点 ,下载次数: 27)

作者: flying008     时间: 2006-9-20 22:46
呵呵……如果延迟时间来处理的话,可以用ping也能满足要求,
作者: NaturalJ0     时间: 2006-9-21 20:05
2003 倒是有 choice 用
作者: btwhy     时间: 2009-5-1 12:25
谢了,,正想要这个