Board logo

标题: 边上班做事边做的DOS小时钟 [打印本页]

作者: bat-zw     时间: 2008-3-10 18:30    标题: 边上班做事边做的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
作者: bat-zw     时间: 2008-3-10 18:52    标题: 加入提醒功能

加入提醒功能,并做了错误代码修改:
@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 ]
作者: plp626     时间: 2008-3-10 19:51
楼主真可爱,相比是个女孩吧(我没坏意)
作者: plp626     时间: 2008-3-10 20:03
查看资料才知楼主是为帅哥,不好意思啊

帖子有想法,在此赞一个
作者: suntb     时间: 2008-3-10 22:27
测试了下 效果不错
作者: tempuser     时间: 2008-3-12 19:14    标题: 请教=!time:~-11,-6!



  Quote:
Originally posted by zw19750516 at 2008-3-10 18:52:
加入提醒功能,并做了错误代码修改:
@echo off&setlocal EnableDelayedExpansion
:begin
mode con cols=40 lines=3
title dos时钟
set t=!time:~-11,-6!
if "%t%"==&quo ...

花了两个小时以为整明白了set的%var:~1,5%用法,可是
=!time:~-11,-6!
怎么理解呢?
比如说,输入time命令的结果是:
18:20:55.75
怎么截取呢?
作者: sea1112     时间: 2008-3-12 20:10
set t=!time:~-11,-6!改为set t=!time!就行了
作者: bat-zw     时间: 2008-3-12 22:18


  Quote:
Originally posted by tempuser at 2008-3-12 19:14:


花了两个小时以为整明白了set的%var:~1,5%用法,可是
=!time:~-11,-6!
怎么理解呢?
比如说,输入time命令的结果是:
18:20:55.75
怎么截取呢?

其实系统时间都是由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,相信你在很短的时间内就会熟悉的。
作者: jiudun     时间: 2008-3-13 01:45
我也试试看。
作者: tempuser     时间: 2008-3-13 12:12


  Quote:
Originally posted by zw19750516 at 2008-3-12 22:18:

其实系统时间都是由11位字符组成的,!time:~-11,-6!命令的意思就是对时间的11个字符按从后面向前截取11个字符并从后面丢弃6个字符,对于18:20:55.75截取 ...

理解不同,但是这个工具对于增强我的理解还不行,因为没有负数
我不知我的理解是否正确,但是我还是觉得这样理解快,比如你说的
%var:~5,5%
从前截取5个,从后截取5个
我的理解就是
从第6个开始,截取5个赋值给变量,不管对错,但很清晰
作者: bat-zw     时间: 2008-3-17 18:48    标题: 己加强到随机变幻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
作者: ngd     时间: 2008-3-18 20:14
不错!
可以再加强一点 加入声音提示
用bell响铃 (cmd下输入  ctrl+g)
或者调用 mshta
mshta vbscript:createobject("sapi.spvoice").speak("time is go home.")(window.close)

作者: bat-zw     时间: 2008-3-19 13:24    标题: 感谢拟谷盗,己加入声音提醒:


@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    下班时间到了!
mshta vbscript:createobject("sapi.spvoice").speak("time is go home")(window.close)
goto begin
[ Last edited by zw19750516 on 2008-3-19 at 01:27 PM ]
作者: zsj008od     时间: 2008-3-19 20:51
学会mshta vbscript:createobject("sapi.spvoice").speak("time is go home")(window.close)
这个不错
作者: zsj008od     时间: 2008-3-19 20:51
给个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"
作者: ngd     时间: 2008-3-20 00:16
LS 的需要安装中文发声引擎
可以用英语来模拟中文普通话
mshta vbscript:createobject("sapi.spvoice").speak("show she e sha")(window.close)
听起来不就像“休息一下!”嘛

[ Last edited by ngd on 2008-3-20 at 12:53 AM ]
作者: xmi     时间: 2008-3-21 01:18


  Quote:
Originally posted by zsj008od at 2008-3-19 08:51 PM:
给个vbs脚本,可以说中英文的
Set objVoice = CreateObject("SAPI.SpVoice")
Set objVoice.Voice = objVoice.GetVoices("Name=Microsoft Mary").Item(0)
objVoice.Speak &quo ...

为何不能发声?
作者: bat-zw     时间: 2008-3-22 21:08
不懂VBS再说这个代码也用不了
作者: sonicandy     时间: 2008-3-22 22:34
不知为什么,楼上的代码不能运行,12楼的代码可以。