我看到了一些引起时间延迟的方法,例如ping和dir。虽然它们都不是非常精确,但是否有更好的方法来引起时间延迟呢?
我听说过一些方法,但它们并不适用于所有计算机,包括我的Windows XP和学校的Windows NT。
在Google上查找一个好答案需要花费很长时间,因为我还没有在Stack Overflow上找到这个问题,所以我想自己创建这个问题;)
我看到了一些引起时间延迟的方法,例如ping和dir。虽然它们都不是非常精确,但是否有更好的方法来引起时间延迟呢?
我听说过一些方法,但它们并不适用于所有计算机,包括我的Windows XP和学校的Windows NT。
在Google上查找一个好答案需要花费很长时间,因为我还没有在Stack Overflow上找到这个问题,所以我想自己创建这个问题;)
这个命令可以帮助你实现此目的。
<warning>这是一种黑客方式</warning>
使用你喜欢的编程语言(除了MS-DOS批处理),创建一个应用程序,它需要一个参数-等待的毫秒数,然后,只需从批处理文件中调用此程序以等待所需的时间。
据我所知,在DOS中,这是唯一可靠的方法。
<?php sleep($args[0]); ?>
- Piskvor left the building根据您的机器速度,可以实现几毫秒的精度。
我刚刚完成了这样一个批处理程序,虽然我不会与您分享实际代码,但我会给您一些指针:
使用%time%变量,并将其分成子字符串(不包括“:”和“。”)-一个子字符串将获取秒数,另一个子字符串将获取分钟数(您可以添加小时数,用于超过一小时的延迟,甚至可以合并日期)
使用set /A将时间变量转换为1个整数,表示自整点(X:00:00.00)以来经过的秒数。将输入的延迟时间(以秒为单位)加到其中。
创建一个简短的循环,比较组合变量(在第2节中解释)的值与当前时间的值(需要在此循环内重新计算当前组合的分钟+秒值),并在匹配为真时退出循环。
verify other 2>nul
setlocal enableextensions
if errorlevel 1 goto err
然后添加一个名为“err”的错误处理程序子例程。
如果您想在同一文件中继续批处理,请在循环子例程之后使用“endlocal”。
顺便说一句,这仅适用于Windows XP服务包2或3。
"...正确的方式...."
你不能在DOS中这样做。