|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『楼 主』:
边上班做事边做的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
|
|
2008-3-10 18:30 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
2 楼』:
加入提醒功能
加入提醒功能,并做了错误代码修改:
@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 ]
|
|
2008-3-10 18:52 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
|
2008-3-10 19:51 |
|
|
plp626
银牌会员
钻石会员
积分 2278
发帖 1020
注册 2007-11-19
状态 离线
|
|
2008-3-10 20:03 |
|
|
suntb
高级用户
积分 581
发帖 277
注册 2006-12-23
状态 离线
|
|
2008-3-10 22:27 |
|
|
tempuser
高级用户
积分 547
发帖 261
注册 2006-4-15
状态 离线
|
『第
6 楼』:
请教=!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
怎么截取呢?
|
|
2008-3-12 19:14 |
|
|
sea1112
初级用户
积分 131
发帖 119
注册 2007-6-12 来自 gz
状态 离线
|
『第
7 楼』:
set t=!time:~-11,-6!改为set t=!time!就行了
|
|
2008-3-12 20:10 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
8 楼』:
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,相信你在很短的时间内就会熟悉的。
|
|
2008-3-12 22:18 |
|
|
jiudun
初级用户
积分 98
发帖 40
注册 2007-11-17
状态 离线
|
|
2008-3-13 01:45 |
|
|
tempuser
高级用户
积分 547
发帖 261
注册 2006-4-15
状态 离线
|
『第
10 楼』:
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个赋值给变量,不管对错,但很清晰
|
|
2008-3-13 12:12 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
11 楼』:
己加强到随机变幻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
|
|
2008-3-17 18:48 |
|
|
ngd
中级用户
拟谷盗
积分 312
发帖 108
注册 2007-1-21
状态 离线
|
|
2008-3-18 20:14 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
13 楼』:
感谢拟谷盗,己加入声音提醒:
@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 ]
|
|
2008-3-19 13:24 |
|
|
zsj008od
初级用户
积分 28
发帖 12
注册 2007-5-8
状态 离线
|
『第
14 楼』:
学会mshta vbscript:createobject("sapi.spvoice").speak("time is go home")(window.close)
这个不错
|
|
2008-3-19 20:51 |
|
|
zsj008od
初级用户
积分 28
发帖 12
注册 2007-5-8
状态 离线
|
『第
15 楼』:
给个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"
|
|
2008-3-19 20:51 |
|