|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『楼 主』:
关于时间段控制服务的困惑~~谢谢高手指点
需求:在电脑一直在开机状态下实现本脚本自动在系统时间8:00-17:00之间运行某个服务,其它时间停止这个服务。
如下是我是本坛学习而弄的第一个小脚本,盼高手指点.
@Echo Off
color 1e
cls
Echo.
Echo 某某服务全自动启停控制.
Echo --------------------------------------------------------------------
:zidong
@Echo OFF
Set /a thisTime=%Time:~0,2%
If %thisTime% GTR 8 Goto :start
If %thisTime% GTR 17 Goto :stop
Echo Time is between 8:00-17:00
:: 全自动启停某某服务 ...
GOTO :zidong
:start
@echo 正在启动某某服务
net start Messenger
Goto zidong
:stop
@echo 正在停止某某服务
net stop Messenger
Goto zidong
:End
Exit
[ Last edited by boyhong on 2007-4-26 at 08:45 PM ]
|
|
2007-4-26 21:55 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
2 楼』:
好像运行不了~~经过我想,对于1:00-9:00,偏移量是2的话一定会错的。但不知怎么解决已便实现我的这个需求~~
盼高手指点一下
|
|
2007-4-26 22:00 |
|
|
flyinspace
银牌会员
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第
3 楼』:
使用 AT 或自己建立计划任务咯。。
at 08:00 "net start ***"
at 17:00 "net stop ***"
若是xp。
at 08:00 "sc start ***"
at 17:00 "net stop ***"
|
知,不觉多。不知,乃求知 |
|
2007-4-26 22:07 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
4 楼』:
谢谢楼上的~~呵呵。。在那台电脑上不敢开 AT 服务~~怕怕安全性...呵呵。几乎24小时对公网服务的,操作系统还是个2000呢~~~
谢谢您的回复
要是用计划任务的话。还有一个问题,怎么让这个脚本循环执行呢?
[ Last edited by boyhong on 2007-4-26 at 09:28 AM ]
|
|
2007-4-26 22:20 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
5 楼』:
我不大理解你的意思;
你是想让该脚本运行后自动判断时间是否在8点到17点之间来决定是否开启服务啊;
(举例: 现在 9点;运行脚本后;自动开启了服务;(现在18点;如果你不再次双击脚本;服务将继续开着;)
现在18点;运行脚本后;自动停止了服务;
)
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
上面的两种不知道你想做哪种
|
|
2007-4-26 22:29 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
6 楼』:
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
而不要再次双击脚本这种会自动的~~~
感谢班班的关注.
|
|
2007-4-26 23:05 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
|
2007-4-26 23:41 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
8 楼』:
不能用做计划任务;
就写个bat;做成自启动系统服务;
时刻监视时间;来确定是否开启或关闭你指定的服务
|
|
2007-4-26 23:43 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
9 楼』:
if %time% geq 8 (
if %time% lss 17 (
net start service
) else (net stop service)
) else (net stop service)
不过这样可能更简单
set /a a=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop service
[ Last edited by everest79 on 2007-4-26 at 01:02 PM ]
|
|
2007-4-27 01:57 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
10 楼』:
to:everest79
他要求 在 不能启用schedule的情况下;
运行脚本后自动在规定时间外停用指定的服务;
也就是说:
Quote: | set /a at=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop service |
|
如果现在时间13点钟 运行该脚本;
则会启动服务;
如果一直不关机;当到了18:00时;如果不再此双击脚本的话;服务是不会自动停止的;
我觉得倒不如 做个循环 然后做成服务.
|
|
2007-4-27 02:06 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
11 楼』:
我一直想在计数器或日志服务里找到一个可以触发外部命令的方法,不过还没发现,嘿嘿
|
|
2007-4-27 02:13 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
12 楼』:
Quote: | Originally posted by bjsh at 2007-4-26 01:06 PM:
to:everest79
他要求 在 不能启用schedule的情况下;
运行脚本后自动在规定时间外停用指定的服务;
也就是说:
如果现在时间13点钟 运行该脚本;
... |
|
谢谢各位的关心~~
对的,我的电脑很少关机,充当服务器角色。。。
这种情况下,电脑上有个服务是定时开启定时关闭的。
我想用批处理来实现。可以吗?
|
|
2007-4-27 06:52 |
|
|
boyhong
初级用户
积分 32
发帖 15
注册 2007-4-26
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by everest79 at 2007-4-26 12:57 PM:
if %time% geq 8 (
if %time% lss 17 (
net start service
) else (net stop service)
) else (net stop service)
不过这样可能更简单
set /a a=%time:~0,2%,1/(a/8),1/(16/a)&&net sta ... |
|
循环不直去。。。上边这个开了,但就关不了。
每天都有一个特定的时间段开启我的这个服务,8:00-17:00,其它时间这个服务是停止的,但这台电脑是一直开机的24*7小时服务的。。
|
|
2007-4-27 06:56 |
|
|
flyinspace
银牌会员
积分 1206
发帖 517
注册 2007-3-25
状态 离线
|
『第
14 楼』:
直接运行,就不管咯。
@echo off
echo wscript.sleep 60000>delay.vbs
:continue
set /a at=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop servic
cscript /nologo delay.vbs
goto :continue
|
知,不觉多。不知,乃求知 |
|
2007-4-27 07:53 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by flyinspace at 2007-4-27 07:53:
@echo off
echo wscript.sleep 60000>delay.vbs
:continue
set /a at=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop servic
cscript /nologo delay.vbs
goto :co ... |
|
貌似没有定义a何来1/(a/8) ?
|
|
2007-4-27 08:00 |
|