中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 时钟--斜体+毫秒(更新,减少cpu和闪烁)
作者:
标题: 时钟--斜体+毫秒(更新,减少cpu和闪烁) 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『楼 主』:  时钟--斜体+毫秒(更新,减少cpu和闪烁) 使用 LLM 解释/回答一下


@echo off
title made by 523066680 2008-08-08
::这一版本由www.cn-dos.net & www.bathome.cn 成员523066680编辑
setlocal enabledelayedexpansion
color 0a
set 01=●●●●
set 02=● ●
set 03=● ●
set 04=● ●
set 05=●●●●
set 11= ●
set 12= ●
set 13= ●
set 14= ●
set 15= ●
set 21=●●●●
set 22= ●
set 23=●●●●
set 24=●
set 25=●●●●
set 31=●●●●
set 32= ●
set 33=●●●●
set 34= ●
set 35=●●●●
set 41=● ●
set 42=● ●
set 43=●●●●
set 44= ●
set 45= ●
set 51=●●●●
set 52=●
set 53=●●●●
set 54= ●
set 55=●●●●
set 61=●●●●
set 62=●
set 63=●●●●
set 64=● ●
set 65=●●●●
set 71=●●●●
set 72= ●
set 73= ●
set 74= ●
set 75= ●
set 81=●●●●
set 82=● ●
set 83=●●●●
set 84=● ●
set 85=●●●●
set 91=●●●●
set 92=● ●
set 93=●●●●
set 94= ●
set 95=●●●●
:a
for /f %%a in ('time /t') do set t0=%%a&set /a t1=!t0:~0,1!,t2=!t0:~1,1!
for /l %%a in (1,1,5) do (
set hang%%a=!%t1%%%a! !%t2%%%a! + !%time:~3,1%%%a! !%time:~4,1%%%a! + !%time:~6,1%%%a! !%time:~7,1%%%a!
)
ping -n 1 -w 500 0.0.0.1>nul
cls
echo,
echo,
echo, %hang1%
echo, %hang2%
echo, %hang3%
echo, %hang4%
echo, %hang5%
echo,
goto :a



Last edited by 523066680 on 2008-8-16 at 11:09 AM ]

   此帖被 +13 点积分        点击查看详情   
评分人:【 radem 分数: +2  时间:2008-7-28 11:40
评分人:【 moniuming 分数: +8  时间:2008-7-28 11:54
评分人:【 BC 分数: +1  时间:2008-8-15 20:48
评分人:【 acaigg 分数: +1  时间:2011-1-6 21:48
评分人:【 cyn01livecn 分数: +1  时间:2011-1-18 12:31




综合型编程论坛

我的作品索引
2008-7-28 11:13
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

不错~赞个..



2008-7-28 11:40
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

效果还是可以,但语气。。。。建议楼主修改下标题。。。

Last edited by bat-zw on 2008-7-28 at 12:10 PM ]



批处理之家新域名:www.bathome.net
2008-7-28 12:09
查看资料  发送邮件  发短消息  网志  OICQ (841615149)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

"无语"体现在什么地方?



2008-7-28 13:29
查看资料  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

真不好意思 。题目已经改啦 ……无语是这样子的……
在某个部分的字符,我不小心打错了……结果就变成这样子了
对我而言 这是喜出望外啊

我年轻 我狂妄 我自大 我该改改了

Last edited by 523066680 on 2008-7-28 at 02:29 PM ]



综合型编程论坛

我的作品索引
2008-7-28 14:18
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

....牛。。学习了!



这家伙很聪明 什么都没留下
2008-7-28 18:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
dslz666
中级用户





积分 233
发帖 117
注册 2007-11-28
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

厉害,真漂亮。什么时候我能达到这种水平就好了

2008-7-29 17:28
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
eech
高级用户




积分 906
发帖 346
注册 2006-7-10
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

这个要顶,很漂亮,学习下

2008-8-15 00:27
查看资料  发短消息  网志   编辑帖子  回复  引用回复
jy02116916
初级用户





积分 68
发帖 37
注册 2008-8-15
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

LZ能解释下那个for命令是怎么调用前边的变量吗。。实在看不大懂

2008-8-15 11:40
查看资料  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

这个问题……没看懂……是不是在问 “变量延迟”啊?提到这个名词我就怕……
还是要有个人的理解的好。
我知道这些:
set n=1
可以直接在for中获得变量n
for %%a in (test) do echo %n%
然而 在for之中建立的变量,要再次在for中使用,就要启用
setlocal enabledelayedexpansion (又是名词--启用变量延迟……)
然后例子是

@echo off
setlocal enabledelayedexpansion
for /l %%a in (1,1,10) do (
set /a n=%%a+%%a
echo !n!
)
pause

这个时候变量的表示方法是!ver! 可以改成echo %n% 试下结果

假如这个for的前面没有加setlocal enabledelayedexpansion
还有一个例子也能成功

@echo off
for /l %%a in (1,1,10) do (
set /a n=%%a+%%a
call,echo,%%n%%
)
pause


顶楼代码中 for中用到了两个变量。但是交错了
像for中的这段set hang%%a=!zero:~0,%%a!
假如不启用变量延迟,变量表示是用:set hang%%a=%zero:~0,%%a%
看到了什么?很多百分号,系统会难以区分,于是启用变量延迟,用百分号和
感叹号 达到区分的作用。(只是个人见解)

当然还有别的用途,for和 if 等都是复合语句,用一个例子表示

@echo off
setlocal enabledelayedexpansion
for /l %%a in (1,1,10) do (
echo %time% !time!

ping -n 1 127.1>nul
)
pause

看到了什么?
这就是!! 和%%的其中一个区别(晕 语言表达不好……看不清楚就多测试
多找代码)

貌似可以这样解释:在复合语句中(同一句),变量始终代表初始值,在
这个句子中做的改变,要在下一句才能得到体现。
但可以通过变量延迟改变这个。用例子表示:

@echo off
setlocal enabledelayedexpansion
set n=0
set /a n+=1 &echo %n% &echo !n!
::上面的句子虽然用了&但始终是同一句,%n%还是代表句子前面建立的n.!n!会是+1后的n
echo %n%
::这是下一句,%n%已经是改变后的了。
pause


Last edited by 523066680 on 2008-8-15 at 04:52 PM ]



综合型编程论坛

我的作品索引
2008-8-15 16:41
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

很多百分号,系统会难以区分,于是启用变量延迟,用百分号和
感叹号 达到区分的作用。

就算有再多的百分号,系统也很容易区分。只是系统不会以我们普通想象的那样区分("逃逸"或者"脱逃"似乎更合适),感叹号不是为了便于区分吧,取决于变量延迟扩展的机制。



2008-8-15 16:57
查看资料  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

顶!hat~(你在群里是个超级冷酷的人……基本不说话)

这样子啊……原来如此
我的想法比较简单,我的简单想法是这样形成的:
set a=1
set n1=hehe
echo %n%a%%
不能成功显示
但XX延迟后
echo !n%a%!能成功显示……直接的让我觉得 在此处
!!是用来区分%%的

再次注解 上面我的话不是官方说明……

Last edited by 523066680 on 2008-8-15 at 05:15 PM ]



综合型编程论坛

我的作品索引
2008-8-15 17:09
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

加了毫秒cpu很高...
建议去掉,减少ping数



C:\
C:\Del BC
2008-8-15 17:49
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

减啦 而且还减少了闪烁
用得是:ping -n 1 -w 500 0.0.0.1>nul
在willsort的文章学的 真不错!
http://www.cn-dos.net/forum/viewthread.php?tid=8905&fpage=1&highlight=%2Bwillsort



综合型编程论坛

我的作品索引
2008-8-15 20:24
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (523066680)  编辑帖子  回复  引用回复
BC
中级用户




积分 338
发帖 175
注册 2007-10-21
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

ok,加分!



C:\
C:\Del BC
2008-8-15 20:48
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: