中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-15 01:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 边上班做事边做的DOS小时钟
楼 主 边上班做事边做的DOS小时钟 发表于 2008-03-10 18:30 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
  大家可以加入提醒功能,如到了什么时间提醒做什么事,由于本人时间关系,所以仓促发帖,请大家多多谅解并提出富贵意见,我每次发贴的目的都是在于共同提高这一主题思想,代码如下:
@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 加入提醒功能 发表于 2008-03-10 18:52 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
加入提醒功能,并做了错误代码修改:
@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 发表于 2008-03-10 19:51 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
楼主真可爱,相比是个女孩吧(我没坏意)
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
4 发表于 2008-03-10 20:03 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
UID 103127
性别 男
状态 离线
查看资料才知楼主是为帅哥,不好意思啊

帖子有想法,在此赞一个
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
5 发表于 2008-03-10 22:27 ·  中国 福建 福州 连江县 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
UID 74328
性别 男
状态 离线
测试了下 效果不错
6 请教=!time:~-11,-6! 发表于 2008-03-12 19:14 ·  中国 黑龙江 大庆 大庆中基石油通信建设有限公司
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
UID 53887
状态 离线
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 发表于 2008-03-12 20:10 ·  中国 广东 广州 海珠区 电信
初级用户
★★
积分 131
发帖 119
注册 2007-06-12 22:50
UID 91125
性别 男
来自 gz
状态 离线
set t=!time:~-11,-6!改为set t=!time!就行了
8 发表于 2008-03-12 22:18 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
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 发表于 2008-03-13 01:45 ·  中国 河南 郑州 联通
初级用户
积分 98
发帖 40
注册 2007-11-17 02:54
UID 102890
性别 男
状态 离线
我也试试看。
10 发表于 2008-03-13 12:12 ·  中国 黑龙江 大庆 大庆中基石油通信建设有限公司
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
UID 53887
状态 离线
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 己加强到随机变幻16色! 发表于 2008-03-17 18:48 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
@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 发表于 2008-03-18 20:14 ·  中国 安徽 马鞍山 电信
中级用户
★★
拟谷盗
积分 312
发帖 108
注册 2007-01-21 11:36
UID 77238
性别 男
状态 离线
不错!
可以再加强一点 加入声音提示
用bell响铃 (cmd下输入 ctrl+g)
或者调用 mshta
mshta vbscript:createobject("sapi.spvoice").speak("time is go home.")(window.close)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
sonicandy +2 2008-03-22 22:20
FLOSS
13 感谢拟谷盗,己加入声音提醒: 发表于 2008-03-19 13:24 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
@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 ]
14 发表于 2008-03-19 20:51 ·  中国 北京 电信
初级用户
积分 28
发帖 12
注册 2007-05-08 17:43
UID 87879
性别 男
状态 离线
学会mshta vbscript:createobject("sapi.spvoice").speak("time is go home")(window.close)
这个不错
15 发表于 2008-03-19 20:51 ·  中国 北京 电信
初级用户
积分 28
发帖 12
注册 2007-05-08 17:43
UID 87879
性别 男
状态 离线
给个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 条) 点击查看详情
评分人分数时间
sonicandy +2 2008-03-22 22:21
论坛跳转: