![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 06:59 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于时间段控制服务的困惑~~谢谢高手指点 |
| 可打印版本 2,812 / 43 |
| 第16楼 boyhong | 发表于 2007-04-27 08:02 |
| 初级用户 发帖 15 积分 32 | |
|
楼上的flyinspace大哥。
能不能解答一下: set /a at=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop servic 的含义呢。。 那个a,是。。。。我刚拿才试了一下。提示: 以零为除数的错误。 谢谢啦 [ Last edited by boyhong on 2007-4-26 at 07:09 PM ] |
|
| 第17楼 bjsh | 发表于 2007-04-27 08:11 |
| 银牌会员 发帖 621 积分 2,000 | |
|
to:vkill
应该是笔误; 应该是at不是a |
|
| 第18楼 bjsh | 发表于 2007-04-27 08:14 |
| 银牌会员 发帖 621 积分 2,000 | |
|
不知道lz在 8:30 分或者17:30分的时候是想停止服务还是开启服务??
这涉及到数字的问题; 大于等于 17点停止服务还是 大于17点停止; 大于等于8:00开启还是 大于8点开启 |
|
| 第19楼 boyhong | 发表于 2007-04-27 08:17 |
| 初级用户 发帖 15 积分 32 | |
|
TO:版主大哥
保持8:00——17:00这组服务正常运行,其它时间停止这组服务.. 但脚本不能关闭,要循环,每天都在自动保持我的这个对这组特定服务的自动启停. 用wscript.sleep来休眠实现循环真是个好主意。 可上下边那个看不太懂。 set /a at=%time:~0,2%,1/(at/8),1/(16/at)&& [ Last edited by boyhong on 2007-4-26 at 07:29 PM ] |
|
| 第20楼 bjsh | 发表于 2007-04-27 08:29 |
| 银牌会员 发帖 621 积分 2,000 | |
|
用flyinspace的这段代码;其中已经改了;
注意是at而不是a; 而且 他 给的延迟时间也太夸张了 60000秒??16个小时丫; 600秒差不多 注意把自己想要控制的service改好名称
建议做成系统服务; 避免了这个脚本因为一直开着可能会被人误关;而且一天天的有个窗口开着(即使是最小化)也是不雅观的; 而且下次重启还得双击; 不如做成自启动的系统服务;一切就都不用管了; [ Last edited by bjsh on 2007-4-26 at 07:35 PM ] |
|
| 第21楼 bjsh | 发表于 2007-04-27 08:34 |
| 银牌会员 发帖 621 积分 2,000 | |
|
set /a at=%time:~0,2%,1/(at/8),1/(16/at)&&net start service||net stop service
这句话的是利用了 set /a的连续赋值特性; 当at在 8:00---17:00之外时;就会造成 除数为零的错误; errorlevel为9169 因此程序执行||后面的停止服务语句; 当处于这段时间时;结果一般为1;errorlevel为0 于是执行 && 后的开启服务语句; 加上循环和延迟 定时检查时间 判断;就达到了你要的效果; 再说一次;强烈建议做成系统服务;于是就算"完美"了 |
|
| 第22楼 boyhong | 发表于 2007-04-27 08:36 |
| 初级用户 发帖 15 积分 32 | |
|
我刚才去看,set /?了~~HELP文件里对这几个符号的解释太粗了点。。。
谢谢~~在班班的帮助下看懂了~~ 做成系统服务////不知怎么做。。。再次麻烦班班出手一下~~谢谢啦 现在成如下了。谢谢 @echo off echo wscript.sleep 600>delay.vbs :continue set /a at=%time:~0,2%,1/(at/8),1/(16/at)&&net start 服务1 net start 服务2 net start 服务3||net stop 服务1 net stop 服务2 net stop 服务3 cscript /nologo delay.vbs goto continue [ Last edited by boyhong on 2007-4-26 at 07:40 PM ] |
|
| 第23楼 bjsh | 发表于 2007-04-27 08:42 |
| 银牌会员 发帖 621 积分 2,000 | |
|
做成系统服务看这里:
http://www.cn-dos.net/forum/viewthread.php?tid=21426&fpage=1&highlight=runassrv [ Last edited by bjsh on 2007-4-26 at 07:58 PM ] |
|
| 第24楼 bjsh | 发表于 2007-04-27 08:44 |
| 银牌会员 发帖 621 积分 2,000 | |
|
你上面的代码有错;应该为:
@echo off echo wscript.sleep 600>delay.vbs :continue set /a at=%time:~0,2%,1/(at/8),1/(16/at)&&(net start 服务1 & net start 服务2 & net start 服务3)||(net stop 服务1 & net stop 服务2 & net stop 服务3) cscript /nologo delay.vbs goto continue [ Last edited by bjsh on 2007-4-26 at 08:51 PM ] |
|
| 第25楼 boyhong | 发表于 2007-04-27 08:59 |
| 初级用户 发帖 15 积分 32 | |
|
谢谢~~我弄好了~~
如下: sc create 服务名 binPath= 路径 [选项1] [选项2] |
|
| 第26楼 boyhong | 发表于 2007-04-27 09:02 |
| 初级用户 发帖 15 积分 32 | |
|
最后关于今天大家对我的帮助,感谢flyinspace大哥的思路,及各位对我的贴子的关注,尤其是bjsh版主手把手~~真诚感谢~~
关于用于实际后的情况,大家得等我用上四五天,然后再回来反馈。 再次感谢。 [ Last edited by boyhong on 2007-4-26 at 08:04 PM ] |
|
| 第27楼 bjsh | 发表于 2007-04-27 09:07 |
| 银牌会员 发帖 621 积分 2,000 | |
|
sc create 似乎对批处理不大支持;
反正在我的机器上是启动不起来; 正在试 runassrv |
|
| 第28楼 boyhong | 发表于 2007-04-27 09:10 |
| 初级用户 发帖 15 积分 32 | |
|
我的电脑是XP2,可以起来。这个脚本最终是用在另一台WIN2000电脑上的。我现在就去看看。。
|
|
| 第29楼 bjsh | 发表于 2007-04-27 09:21 |
| 银牌会员 发帖 621 积分 2,000 | |
|
等下吧;
我刚才试了; 很浪费资源的;我服务起来居然占到50%以上; 把那段延迟去掉;基本就不占资源了; 干脆用这个吧;
把他做服务吧;测试不占系统资源; 不过如果去掉了ping -n 60 127.1 占用就几乎100% [ Last edited by bjsh on 2007-4-26 at 08:45 PM ] |
|
| 第30楼 boyhong | 发表于 2007-04-27 09:32 |
| 初级用户 发帖 15 积分 32 | |
|
~~我正在为占用的CPU发愁~~
用ping -n 60 127.1确实缓解了~~ 不过那段代码好像有问题,正在试... 试得差不多了~~ 确实有些问题。现在时间:20:31 按照脚本来说,应是关闭服务的,,可是看到执行的情况是: 开启服务然后又关闭服务。然后开始延时,又开始先开服务,再停服务。就这样循环。 [ Last edited by boyhong on 2007-4-26 at 08:49 PM ] |
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |