中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 10:05
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 时钟--斜体+毫秒(更新,减少cpu和闪烁)
可打印版本  6,529 / 23
第1楼 523066680 发表于 2008-07-28 11:13
银牌会员 发帖 1,133 积分 2,362
时钟--斜体+毫秒(更新,减少cpu和闪烁)


[ Last edited by 523066680 on 2008-8-16 at 11:09 AM ]
第2楼 radem 发表于 2008-07-28 11:40
高级用户 发帖 383 积分 691
不错~赞个..
第3楼 bat-zw 发表于 2008-07-28 12:09
金牌会员 发帖 1,276 积分 3,105
效果还是可以,但语气。。。。建议楼主修改下标题。。。

[ Last edited by bat-zw on 2008-7-28 at 12:10 PM ]
第4楼 HAT 发表于 2008-07-28 13:29
版主 发帖 5,017 积分 9,023
"无语"体现在什么地方?
第5楼 523066680 发表于 2008-07-28 14:18
银牌会员 发帖 1,133 积分 2,362
真不好意思 。题目已经改啦 ……无语是这样子的……
在某个部分的字符,我不小心打错了……结果就变成这样子了
对我而言 这是喜出望外啊

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

[ Last edited by 523066680 on 2008-7-28 at 02:29 PM ]
第6楼 luowei14 发表于 2008-07-28 18:07
初级用户 发帖 98 积分 193
....牛。。学习了!
第7楼 dslz666 发表于 2008-07-29 17:28
中级用户 发帖 117 积分 233
厉害,真漂亮。什么时候我能达到这种水平就好了
第8楼 eech 发表于 2008-08-15 00:27
高级用户 发帖 346 积分 906
这个要顶,很漂亮,学习下
第9楼 jy02116916 发表于 2008-08-15 11:40
初级用户 发帖 37 积分 68
LZ能解释下那个for命令是怎么调用前边的变量吗。。实在看不大懂
第10楼 523066680 发表于 2008-08-15 16:41
银牌会员 发帖 1,133 积分 2,362
这个问题……没看懂……是不是在问 “变量延迟”啊?提到这个名词我就怕……
还是要有个人的理解的好。
我知道这些:
set n=1
可以直接在for中获得变量n
for %%a in (test) do echo %n%
然而 在for之中建立的变量,要再次在for中使用,就要启用
setlocal enabledelayedexpansion (又是名词--启用变量延迟……)
然后例子是

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

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


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

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

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

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


[ Last edited by 523066680 on 2008-8-15 at 04:52 PM ]
第11楼 HAT 发表于 2008-08-15 16:57
版主 发帖 5,017 积分 9,023
很多百分号,系统会难以区分,于是启用变量延迟,用百分号和
感叹号 达到区分的作用。

就算有再多的百分号,系统也很容易区分。只是系统不会以我们普通想象的那样区分("逃逸"或者"脱逃"似乎更合适),感叹号不是为了便于区分吧,取决于变量延迟扩展的机制。
第12楼 523066680 发表于 2008-08-15 17:09
银牌会员 发帖 1,133 积分 2,362
顶!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 ]
第13楼 BC 发表于 2008-08-15 17:49
中级用户 发帖 175 积分 338
加了毫秒cpu很高...
建议去掉,减少ping数
第14楼 523066680 发表于 2008-08-15 20:24
银牌会员 发帖 1,133 积分 2,362
减啦 而且还减少了闪烁
用得是: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
第15楼 BC 发表于 2008-08-15 20:48
中级用户 发帖 175 积分 338
ok,加分!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023