|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
16 楼』:
楼上的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 ]
|
|
2007-4-27 08:02 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
17 楼』:
to:vkill
应该是笔误;
应该是at不是a
|
|
2007-4-27 08:11 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
18 楼』:
不知道lz在 8:30 分或者17:30分的时候是想停止服务还是开启服务??
这涉及到数字的问题;
大于等于 17点停止服务还是 大于17点停止;
大于等于8:00开启还是 大于8点开启
|
|
2007-4-27 08:14 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
19 楼』:
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 ]
|
|
2007-4-27 08:17 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
20 楼』:
用flyinspace的这段代码;其中已经改了;
注意是at而不是a;
而且 他 给的延迟时间也太夸张了
60000秒??16个小时丫;
600秒差不多
注意把自己想要控制的service改好名称
Quote: | @echo off
echo wscript.sleep 600>delay.vbs
:continue
set /a at=%time:~0,2%,1/(at/8),1/(16/at)&&net start service||net stop service
cscript /nologo delay.vbs
goto continue |
|
建议做成系统服务;
避免了这个脚本因为一直开着可能会被人误关;而且一天天的有个窗口开着(即使是最小化)也是不雅观的;
而且下次重启还得双击;
不如做成自启动的系统服务;一切就都不用管了;
[ Last edited by bjsh on 2007-4-26 at 07:35 PM ]
|
|
2007-4-27 08:29 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
21 楼』:
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
于是执行 && 后的开启服务语句;
加上循环和延迟 定时检查时间 判断;就达到了你要的效果;
再说一次;强烈建议做成系统服务;于是就算"完美"了
|
|
2007-4-27 08:34 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
22 楼』:
我刚才去看,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 ]
|
|
2007-4-27 08:36 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
|
2007-4-27 08:42 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
24 楼』:
你上面的代码有错;应该为:
@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 ]
|
|
2007-4-27 08:44 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
25 楼』:
谢谢~~我弄好了~~
如下:
sc create 服务名 binPath= 路径 [选项1] [选项2]
|
|
2007-4-27 08:59 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
26 楼』:
最后关于今天大家对我的帮助,感谢flyinspace大哥的思路,及各位对我的贴子的关注,尤其是bjsh版主手把手~~真诚感谢~~
关于用于实际后的情况,大家得等我用上四五天,然后再回来反馈。
再次感谢。
[ Last edited by boyhong on 2007-4-26 at 08:04 PM ]
|
|
2007-4-27 09:02 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
27 楼』:
sc create 似乎对批处理不大支持;
反正在我的机器上是启动不起来;
正在试 runassrv
|
|
2007-4-27 09:07 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
28 楼』:
我的电脑是XP2,可以起来。这个脚本最终是用在另一台WIN2000电脑上的。我现在就去看看。。
|
|
2007-4-27 09:10 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
29 楼』:
等下吧;
我刚才试了;
很浪费资源的;我服务起来居然占到50%以上;
把那段延迟去掉;基本就不占资源了;
干脆用这个吧;
Quote: | @echo off
: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)
ping -n 60 127.1
goto continue |
|
把他做服务吧;测试不占系统资源;
不过如果去掉了ping -n 60 127.1 占用就几乎100%
[ Last edited by bjsh on 2007-4-26 at 08:45 PM ]
|
|
2007-4-27 09:21 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
30 楼』:
~~我正在为占用的CPU发愁~~
用ping -n 60 127.1确实缓解了~~
不过那段代码好像有问题,正在试...
试得差不多了~~
确实有些问题。现在时间:20:31
按照脚本来说,应是关闭服务的,,可是看到执行的情况是:
开启服务然后又关闭服务。然后开始延时,又开始先开服务,再停服务。就这样循环。
[ Last edited by boyhong on 2007-4-26 at 08:49 PM ]
|
|
2007-4-27 09:32 |
|