中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-29 07:17
47,816 主题排行 / 349,916 发帖 / 今日 2 篇 / 48,265 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]批处理对抗
可打印版本  3,219 / 5
第1楼 willsort 发表于 2006-06-28 21:44
元老会员 发帖 1,512 积分 4,432
[讨论]批处理对抗
To All:

日来天气闷热无所获,偶得此批处理对抗调度程序,同时随意写了一个最简单的对抗代码。虽然作了一些公平性处理,但仍然无法完全达到公平对抗的目标。在数次的测试中,均是优先调度的失败。看看大家有什么办法。

Scheduler.cmd - V1 - 批处理代码对抗调度程序


test1.cmd & test2.cmd
第2楼 3742668 发表于 2006-06-28 22:41
荣誉版主 发帖 718 积分 2,013
无语。。。
不过就代码上来看,个人认为问题应该出在时间上,批处理似乎并不能很精确地处理时间,而在本例代码中时间精确到了微秒,估计是这方面出了问题。更改代码如下:

test1 & test2:

测试了4次,其中test1获胜一次,test2获胜二次,平一次(意料之外……)。
之所以对平一次感到意外,原因如下:
test1:

test2:

用鼠标同时选中二文件,然后按下回车键,两文件同时运行(看起来如此),结果每次test2都被test1给挂了。当然,就算把两个文件的排列顺序颠倒,然后再选取执行结果也是一样,看来文件名占了很大的优势啊。
进而想到在前面的测试中出现平手的情况,只能感慨CMD用在处理循环上的时间实在是太长了。
另:关于循环延时,想起了以前的一个贴子: 从一个GIF文件引起的麻烦

后记:大家无聊的时候都做甚么?有无若willsort兄这般拿CMD来打发时光?老手与新手,高手与菜鸟的区别就是从这里开始的。
鄙视自己一个先,居然无聊的时候打 傲剑狂刀。
第3楼 doscc 发表于 2006-06-29 14:08
中级用户 发帖 93 积分 256 来自 广东
我也ps 一下自己! 有空在手机论坛潜水!



3次运行版主的原代码.都是 test1.cmd 赢! 佩服版主的思路

[ Last edited by doscc on 2006-6-29 at 14:10 ]
第4楼 xiongwei2624 发表于 2006-06-29 15:40
初级用户 发帖 44 积分 96 来自 深圳
比较深奥!还要慢慢研究!
第5楼 3742668 发表于 2006-07-01 10:04
荣誉版主 发帖 718 积分 2,013

if 1%time:~6,2% GEQ 157 goto Wait1 rem 为什么用 157 这是自定的吗?

因为57+3=60

set /a sec=1%time:~6,2%+3 rem 这里我觉得不用加 1 (1%tiem:~6,8%) 吧 ,因为在下面一句 (%sec:~1,2%.00) 把 左边第一个字符去了.

如果时间为08或09呢?
第6楼 doscc 发表于 2006-07-01 11:40
中级用户 发帖 93 积分 256 来自 广东
嗯`
谢谢 3742668版主
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023