![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 13:03 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]谁懂VBS,帮忙做个倒计时. |
| 可打印版本 4,875 / 20 |
| 第1楼 voiL | 发表于 2006-10-15 05:18 |
| 中级用户 发帖 189 积分 384 | |
|
[已结]谁懂VBS,帮忙做个倒计时. 找了很多资料,在不用外部命令的情况下.CMD没法做出倒计时.
但我想在脚本中给用户提个醒.没办法之下只有求之于VBS了. 希望哪位路过的大虾帮帮工忙... 我要从BAT里直接写入*.VBS,然后运行之. 这个VBS只需弹出个窗口告诉用户还有多少时间可以执行操作就OK了. 致谢! 还有一问题就是:CMD的窗口能否指定坐标??? 例如我想让窗口定位在屏幕的右上角.可有好的办法??? [ Last edited by voiL on 2006-10-21 at 02:19 ] |
|
| 第2楼 vkill | 发表于 2006-10-15 05:30 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
@echo off
set n=10 :start cls echo %n%秒后自动退出 set /a n=n-1 ping -n 2 127.0.0.1>nul if %n%==0 goto end goto start :end 只是记时不怎么准确 |
|
| 第3楼 voiL | 发表于 2006-10-15 05:42 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by he200377 at 2006-10-15 05:30: 谢谢兄台的热心回复... 但这个仅仅是个倒计时... 而我需要的并不是倒计时完了就退出这么简单... 而是让用户知道他还有多少时间可以操作... 兄的倒计时运行时,用户就不能再操作了... 你这个方法我之前也有想过... 这就是我一楼上面加红色字的部分的提问... 如果在BAT里再start另外一个BAT(倒计时)... 那么新运行的那个BAT必定会挡住之前的那个窗口(虽然可以指定窗口大小)... 但这总不是我的初衷... 最理想的就是左边是主窗口...右上角弹个小的CMD计时窗口... 我知道CMD里可以用 @mode con:cols=xx lines=xx 来指定窗口的高度和宽度,但不知有没可以指定坐标的命令... 不知哪位大虾有好的解决办法??? [ Last edited by voiL on 2006-10-15 at 05:54 ] |
|
| 第4楼 redtek | 发表于 2006-10-15 06:16 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
是做批处理类型的答题系统?
还是批处理类型的模拟考试系统? |
|
| 第5楼 zerocq | 发表于 2006-10-19 00:33 |
| 中级用户 发帖 196 积分 458 | |
|
楼主看看这个可以不,会出现一个窗口提醒,该窗口3秒自动消失
不知道合不合你的意? @echo off set /p i=多少秒提醒一次?: set /p j=倒计时多少秒结束?: echo wscript.sleep %i%*1000 >i.vbs :start cscript //nologo i.vbs if %j% LEQ 0 del i.vbs&&goto :eof set /a j=%j%-%i% echo dim objshell>j.vbs echo Set objshell = WScript.CreateObject ("WSCript.shell")>>j.vbs echo ts =objshell.Popup("你还有%j%秒操作",3, "提示", 0 + 32)>>j.vbs cscript //nologo j.vbs goto :start |
|
| 第6楼 无奈何 | 发表于 2006-10-19 00:48 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
这个命令是不是能完成你要的效果。
|
|
| 第7楼 yfd11 | 发表于 2006-10-19 01:33 |
| 初级用户 发帖 15 积分 44 | |
|
@echo off
color 2f Title=弱智制作QQ:441540230 set /p t1=请输入时间最后两位数有效: set t2=%time% &echo 现在时间是:%time% set/a t1=%t1:~-2%-60 if "%t1:~0,1%"=="-" set/a t1=60+%t1% rem echo %t2:~-6,-4% set/a t1=%t2:~-6,-4%+%t1%-60 if "%t1:~0,1%"=="-" set/a t1=%t1%+60 set t1==00%t1% echo 到%t1:~-2,-1%%t1:~-1%秒结束. :loop1 :loop2 if "%t1:~-2,-1%" NEQ "%time:~-5,-4%" goto :loop1 if "%t1:~-1%" NEQ "%time:~-4,-3%" goto :loop2 echo 谢谢您的使用 按任意键结束 &&pause>nul 1>nul 不过用VBS更好. WScript.Sleep 1000(10秒) |
|
| 第8楼 3742668 | 发表于 2006-10-19 01:47 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
默认是10秒,可以自己带时间参数运行,单位为秒. |
|
| 第9楼 3742668 | 发表于 2006-10-19 07:48 |
| 荣誉版主 发帖 718 积分 2,013 | |
一定要在右上角吗?左上角难道就不行? |
|
| 第10楼 lxmxn | 发表于 2006-10-19 11:28 |
| 版主 发帖 4,938 积分 11,386 | |
|
呵呵,版主的代码用的妙。 先用"start /max"命令使CMD窗口最大化到屏幕的(0,0)位置,然后再用"mode con"使其变为最小,接着一个for+ping的延时用的非常巧妙。小弟佩服。 为版主先顶4分。 |
|
| 第11楼 voiL | 发表于 2006-10-19 12:28 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by zerocq at 2006-10-19 00:33: 感谢zerocq提供的帮助. 初步试了一下兄的代码,功能是实现了.只是不能客观地给用户一个动态的提示. 不过你那个3秒后自动消失的窗口做得很新颖.收藏下来以备后用. 再次感谢. |
|
| 第12楼 voiL | 发表于 2006-10-19 12:32 |
| 中级用户 发帖 189 积分 384 | |
|
至于无奈何版主给出的代码在我的系统上没法完成测试.(winxp SP2)
无奈何版主的功力是有目共睹的,还望版主不吝指点一二. 因为我也是刚学批处理没多久,再加上功底浅,很多东西都没搞懂. |
|
| 第13楼 voiL | 发表于 2006-10-19 12:36 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by yfd11 at 2006-10-19 01:33: 兄的代码我也曾写过类似的. 只是觉得没有一种明确的时间感. 往往时间到了,用户还没决定好他要做的事情. 不过兄的代码中也有不少值得学习之处.收藏以备后用. 谢谢. |
|
| 第14楼 voiL | 发表于 2006-10-19 12:43 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by 3742668 at 2006-10-19 01:47: |
|
| 第15楼 voiL | 发表于 2006-10-19 12:47 |
| 中级用户 发帖 189 积分 384 | |
Originally posted by 3742668 at 2006-10-19 07:48: |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |