![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-27 12:50 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,276 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 边上班做事边做的DOS小时钟 |
| 可打印版本 2,499 / 18 |
| 第1楼 bat-zw | 发表于 2008-03-10 18:30 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
边上班做事边做的DOS小时钟 大家可以加入提醒功能,如到了什么时间提醒做什么事,由于本人时间关系,所以仓促发帖,请大家多多谅解并提出富贵意见,我每次发贴的目的都是在于共同提高这一主题思想,代码如下:
@echo off :begin mode con cols=40 lines=3&setlocal EnableDelayedExpansion title dos时钟 set /a a=%random%/3640&set /a b=%random%/3640 cls&color %a%%b%&echo.&echo.&echo.&echo %date% !time:~-11,-3!&ping/n 2 127.1 >nul goto begin |
|
| 第2楼 bat-zw | 发表于 2008-03-10 18:52 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
加入提醒功能 加入提醒功能,并做了错误代码修改:
@echo off&setlocal EnableDelayedExpansion :begin mode con cols=40 lines=3 title dos时钟 set t=!time:~-11,-6! if "%t%"=="18:00" goto show set /a a=%random%/3640&set /a b=%random%/3640 cls&color %a%%b%&echo.&echo.&echo.&echo %date% !time:~-11,-3!&ping/n 2 127.1 >nul goto begin :show cls&color 9f&echo.&echo.&echo.&echo 下班时间到了! goto begin [ Last edited by zw19750516 on 2008-3-10 at 07:14 PM ] |
|
| 第3楼 plp626 | 发表于 2008-03-10 19:51 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
楼主真可爱,相比是个女孩吧(我没坏意)
|
|
| 第4楼 plp626 | 发表于 2008-03-10 20:03 |
| 银牌会员 发帖 1,020 积分 2,278 | |
|
查看资料才知楼主是为帅哥,不好意思啊
帖子有想法,在此赞一个 |
|
| 第5楼 suntb | 发表于 2008-03-10 22:27 |
| 高级用户 发帖 277 积分 581 | |
|
测试了下 效果不错
|
|
| 第6楼 tempuser | 发表于 2008-03-12 19:14 |
| 高级用户 发帖 261 积分 547 | |
请教=!time:~-11,-6!Originally posted by zw19750516 at 2008-3-10 18:52: 花了两个小时以为整明白了set的%var:~1,5%用法,可是 =!time:~-11,-6! 怎么理解呢? 比如说,输入time命令的结果是: 18:20:55.75 怎么截取呢? |
|
| 第7楼 sea1112 | 发表于 2008-03-12 20:10 |
| 初级用户 发帖 119 积分 131 来自 gz | |
|
set t=!time:~-11,-6!改为set t=!time!就行了
|
|
| 第8楼 bat-zw | 发表于 2008-03-12 22:18 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by tempuser at 2008-3-12 19:14: 其实系统时间都是由11位字符组成的,!time:~-11,-6!命令的意思就是对时间的11个字符按从后面向前截取11个字符并从后面丢弃6个字符,对于18:20:55.75截取后的字符就是18:20,看来你对截取字符命令还不很了解,给个练习工具你:http://www.cn-dos.net/forum/viewthread.php?tid=38251&fpage=4,相信你在很短的时间内就会熟悉的。 |
|
| 第9楼 jiudun | 发表于 2008-03-13 01:45 |
| 初级用户 发帖 40 积分 98 | |
|
我也试试看。
|
|
| 第10楼 tempuser | 发表于 2008-03-13 12:12 |
| 高级用户 发帖 261 积分 547 | |
Originally posted by zw19750516 at 2008-3-12 22:18: 理解不同,但是这个工具对于增强我的理解还不行,因为没有负数 我不知我的理解是否正确,但是我还是觉得这样理解快,比如你说的 %var:~5,5% 从前截取5个,从后截取5个 我的理解就是 从第6个开始,截取5个赋值给变量,不管对错,但很清晰 |
|
| 第11楼 bat-zw | 发表于 2008-03-17 18:48 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
己加强到随机变幻16色! @echo off&setlocal EnableDelayedExpansion
:begin mode con cols=40 lines=3 title dos时钟 set t=!time:~-11,-6! if "%t%"=="12:00" goto show if "%t%"=="18:00" goto show set /a a=%random%/2184&set /a b=%random%/2184 if "%a%"=="15" set a=f if "%a%"=="14" set a=e if "%a%"=="13" set a=d if "%a%"=="12" set a=c if "%a%"=="11" set a=b if "%a%"=="10" set a=a if "%b%"=="15" set b=f if "%b%"=="14" set b=e if "%b%"=="13" set b=d if "%b%"=="12" set b=c if "%b%"=="11" set b=b if "%b%"=="10" set b=a cls&color %a%%b%&echo.&echo.&echo.&echo %date% !time:~-11,-3!&ping/n 2 127.1 >nul goto begin :show cls&color 9f&echo.&echo.&echo.&echo 下班时间到了! goto begin |
|
| 第12楼 ngd | 发表于 2008-03-18 20:14 |
| 中级用户 发帖 108 积分 312 | |
|
不错!
可以再加强一点 加入声音提示 用bell响铃 (cmd下输入 ctrl+g) 或者调用 mshta |
|
| 第13楼 bat-zw | 发表于 2008-03-19 13:24 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
感谢拟谷盗,己加入声音提醒: [ Last edited by zw19750516 on 2008-3-19 at 01:27 PM ] |
|
| 第14楼 zsj008od | 发表于 2008-03-19 20:51 |
| 初级用户 发帖 12 积分 28 | |
|
学会mshta vbscript:createobject("sapi.spvoice").speak("time is go home")(window.close)
这个不错 |
|
| 第15楼 zsj008od | 发表于 2008-03-19 20:51 |
| 初级用户 发帖 12 积分 28 | |
|
给个vbs脚本,可以说中英文的
Set objVoice = CreateObject("SAPI.SpVoice") Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Mary").Item(0) objVoice.Speak "Hi, this is Microsoft Mary" Wscript.Sleep 2000 Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Simplified Chinese").Item(0) objVoice.Speak "你好,今天是星期天Hi, this is Microsoft Mary" |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |