中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-27 12:16
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,276 会员排行
DOS批处理 & 脚本技术(批处理室) » 边上班做事边做的DOS小时钟
可打印版本  2,496 / 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:
加入提醒功能,并做了错误代码修改:
@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
怎么截取呢?
第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:


花了两个小时以为整明白了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,相信你在很短的时间内就会熟悉的。
第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:

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

理解不同,但是这个工具对于增强我的理解还不行,因为没有负数
我不知我的理解是否正确,但是我还是觉得这样理解快,比如你说的
%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