![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 14:10 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理延时还有什么精巧点的技巧吗? |
| 可打印版本 33,523 / 71 |
| 第1楼 nvflash | 发表于 2006-09-29 07:08 |
| 初级用户 发帖 38 积分 126 | |
|
批处理延时还有什么精巧点的技巧吗? ping -n这个可实现延时,但是我认得这不是一个好办法,因为我查看了一下CPU的使用情况,ping时已经达到50%,一个延时都这样了,还搞什么程序?
|
|
| 第2楼 vkill | 发表于 2006-09-29 07:41 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
可以变通一下,用 at
|
|
| 第3楼 nvflash | 发表于 2006-09-29 07:47 |
| 初级用户 发帖 38 积分 126 | |
|
at好像需要服务的支持,现在许多机器优化了后都没开这个服务
|
|
| 第4楼 vkill | 发表于 2006-09-29 07:54 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by nvflash at 2006-9-29 07:47: 你在自己的虮子上开就是了哦~要是想在别人的虮子上开可以执行下面的开启哦 sc config schedule start= auto sc start schedule |
|
| 第5楼 nvflash | 发表于 2006-09-29 08:17 |
| 初级用户 发帖 38 积分 126 | |
|
如果您说是是任务计划的话,我已经没信心了,我用多种方式试过多次任务计划,都莫名奇妙的没有正确执行,这东西不太稳当,我看还是不用这个好
|
|
| 第6楼 vkill | 发表于 2006-09-29 08:19 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
呵呵,建议你搜索 "延时" 以前讨论过好多的
|
|
| 第7楼 3742668 | 发表于 2006-09-29 08:48 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
批处理延时方法小结:
1.ping 内存使用: cmd.exe 1704k ping.exe 2920k 误差评定: 较高 优点: 代码构造简单 缺点: 内存占用高,延迟时间长的话误差相对较大。 2.还是ping 内存使用: cmd.exe 1700k ping.exe 2912k 误差评定: 一般 优点: 代码构造简单,时间越长误差越小,精确度较高(50ms) 缺点: 内存占用高 3.call 内存使用: cmd.exe 1744k cmd.exe 1740k 误差评定: 很高 (受CPU频率影响非常大,几乎无法准确把握全局延迟时间) 优点: 精确度较高 缺点: 不适合需精确把握时间的场合 4.msg 内存使用: cmd.exe 1752k msg.exe 2620k 误差评定: 低 优点: 比较稳定,可中途取消延时,代码构造简单 缺点: 内存占用非常大,有窗口弹出(优点?缺点?) 5.vbs 内存使用: cscript.exe 4812k cmd.exe 1708k 误差评定: 很低 优点: 精确度最高,使用更灵活,方便 缺点: 产生临时文件,内存占用多 End: 1.测试条件有限,以上数据并不具备权威性。 2.关于精确度。 其实只要是参数可以指定时间的命令精确度都比较高,之所以受影响是取决与命令执行的次数,次数越多,精确度越低。而方案5中之所以说它的精确度最高,可以举个例子: cscript //b //nologo delay.vbs 2036,而方案二由于最小精确度的缘故,还是比方案5要差一点。 3.欢迎大家补充。 参考链接: 1.从一个GIF文件引起的麻烦 2.批处理编程的异类 [ Last edited by 3742668 on 2006-9-29 at 08:49 ] |
|
| 第8楼 redtek | 发表于 2006-09-29 08:49 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
能讲一下你为什么要延时操作?
|
|
| 第9楼 nvflash | 发表于 2006-09-29 09:11 |
| 初级用户 发帖 38 积分 126 | |
|
请问版主,除了%time%以外,还有哪些是系统内置的变量?
|
|
| 第10楼 3742668 | 发表于 2006-09-29 09:14 |
| 荣誉版主 发帖 718 积分 2,013 | |
Originally posted by nvflash at 2006-9-29 09:11: 1.运行不带参数的命令set 2.运行命令set /?,末尾。 |
|
| 第11楼 asbai | 发表于 2006-11-03 12:40 |
| 高级用户 发帖 252 积分 653 | |
|
推荐一个标准 posix 命令:sleep,例如:
睡 10 秒 sleep 10s 1分钟 sleep 1m 2小时 sleep 2h 5天: ![]() sleep 5d 附件是 sleep 的 win32 版,对于需要到处传播的批处理来说可能不太方便。自己用的话还是不错的。 附件 sleep.rar (7.57 KiB) |
|
| 第12楼 lxmxn | 发表于 2006-11-03 23:43 |
| 版主 发帖 4,938 积分 11,386 | |
|
呵呵,多谢楼上又提供了一个延时的小工具,下载来试试~~ 记得还有一个工具,叫sleepx,它可以精确到毫秒,不知道这个sleep有没有比较高的精确度哈~~ |
|
| 第13楼 asbai | 发表于 2006-11-04 04:25 |
| 高级用户 发帖 252 积分 653 | |
Originally posted by lxmxn at 2006-11-3 23:43: 呵呵,在 win32 下面,除了用API:timeSetEvent,其它手段很难做到精确的毫秒级延迟(虽然 Performance Counter 也可以,但是CPU耗用率过高)。 timeSetEvent 会在系统全局范围改变时间片粒度,对系统性能也有一点影响。兄台如果觉得真的有必要的话,俺可以写一个 ![]() |
|
| 第14楼 scriptor | 发表于 2006-12-26 07:40 |
| 银牌会员 发帖 555 积分 1,187 | |
|
这个好啊
支持 |
|
| 第15楼 PPdos | 发表于 2006-12-26 19:20 |
| 高级用户 发帖 268 积分 783 | |
|
用 goto和set 来做延时 @echo off
echo 当前秒数:%time:~6,-3% set /p dalay="输入60以内延迟秒数:"%dalay% :compte if not %dalay%==%time:~6,-3% goto compte echo 时间到!!买单! pause>nul |
|
| 1 2 3 4 … 5 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |