|  | 
 
| boyhong 初级用户
 
   
 
 
 
 积分 32
 发帖 15
 注册 2007-4-26
 状态 离线
 | 
| 『楼 主』:
 关于时间段控制服务的困惑~~谢谢高手指点
 
使用 LLM 解释/回答一下 
 
 
需求:在电脑一直在开机状态下实现本脚本自动在系统时间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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
好像运行不了~~经过我想,对于1:00-9:00,偏移量是2的话一定会错的。但不知怎么解决已便实现我的这个需求~~
 盼高手指点一下
 
 
 
 
 |  | 
|  2007-4-26 22:00 |  | 
|  | 
 
| flyinspace 银牌会员
 
      
 
 
 
 积分 1206
 发帖 517
 注册 2007-3-25
 状态 离线
 | 
| 『第 3 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
使用 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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
谢谢楼上的~~呵呵。。在那台电脑上不敢开 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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
我不大理解你的意思;
 你是想让该脚本运行后自动判断时间是否在8点到17点之间来决定是否开启服务啊;
 (举例: 现在 9点;运行脚本后;自动开启了服务;(现在18点;如果你不再次双击脚本;服务将继续开着;)
 现在18点;运行脚本后;自动停止了服务;
 )
 
 还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
 
 上面的两种不知道你想做哪种
 
 
 
 
 |  | 
|  2007-4-26 22:29 |  | 
|  | 
 
| boyhong 初级用户
 
   
 
 
 
 积分 32
 发帖 15
 注册 2007-4-26
 状态 离线
 | 
| 『第 6 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
 而不要再次双击脚本这种会自动的~~~
 
 感谢班班的关注.
 
 
 
 
 |  | 
|  2007-4-26 23:05 |  | 
|  | 
 
| bjsh 银牌会员
 
      
 
 
 
 积分 2000
 发帖 621
 注册 2007-1-1
 状态 离线
 |  | 
|  2007-4-26 23:41 |  | 
|  | 
 
| bjsh 银牌会员
 
      
 
 
 
 积分 2000
 发帖 621
 注册 2007-1-1
 状态 离线
 | 
| 『第 8 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
不能用做计划任务;就写个bat;做成自启动系统服务;
 时刻监视时间;来确定是否开启或关闭你指定的服务
 
 
 
 
 |  | 
|  2007-4-26 23:43 |  | 
|  | 
 
| everest79 金牌会员
 
       一叶枝头,万树皆春
 
 
 
 积分 2564
 发帖 1127
 注册 2006-12-25
 状态 离线
 | 
| 『第 9 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
to:everest79 
他要求 在 不能启用schedule的情况下;
 
运行脚本后自动在规定时间外停用指定的服务;
 
也就是说:
 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
 状态 离线
 |  | 
|  2007-4-27 02:13 |  | 
|  | 
 
| boyhong 初级用户
 
   
 
 
 
 积分 32
 发帖 15
 注册 2007-4-26
 状态 离线
 | 
| 『第 12 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
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 楼』:
 直接运行,就不管咯。
 
使用 LLM 解释/回答一下 
 
 
@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 楼』:
 
 
使用 LLM 解释/回答一下 
 
 
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 |  |