![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 06:26 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于时间段控制服务的困惑~~谢谢高手指点 |
| 可打印版本 2,811 / 43 |
| 第1楼 boyhong | 发表于 2007-04-26 21:55 |
| 初级用户 发帖 15 积分 32 | |
|
关于时间段控制服务的困惑~~谢谢高手指点 需求:在电脑一直在开机状态下实现本脚本自动在系统时间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 ] |
|
| 第2楼 boyhong | 发表于 2007-04-26 22:00 |
| 初级用户 发帖 15 积分 32 | |
|
好像运行不了~~经过我想,对于1:00-9:00,偏移量是2的话一定会错的。但不知怎么解决已便实现我的这个需求~~
盼高手指点一下 |
|
| 第3楼 flyinspace | 发表于 2007-04-26 22:07 |
| 银牌会员 发帖 517 积分 1,206 | |
|
使用 AT 或自己建立计划任务咯。。
at 08:00 "net start ***" at 17:00 "net stop ***" 若是xp。 at 08:00 "sc start ***" at 17:00 "net stop ***" |
|
| 第4楼 boyhong | 发表于 2007-04-26 22:20 |
| 初级用户 发帖 15 积分 32 | |
|
谢谢楼上的~~呵呵。。在那台电脑上不敢开 AT 服务~~怕怕安全性...呵呵。几乎24小时对公网服务的,操作系统还是个2000呢~~~
谢谢您的回复 要是用计划任务的话。还有一个问题,怎么让这个脚本循环执行呢? [ Last edited by boyhong on 2007-4-26 at 09:28 AM ] |
|
| 第5楼 bjsh | 发表于 2007-04-26 22:29 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我不大理解你的意思;
你是想让该脚本运行后自动判断时间是否在8点到17点之间来决定是否开启服务啊; (举例: 现在 9点;运行脚本后;自动开启了服务;(现在18点;如果你不再次双击脚本;服务将继续开着;) 现在18点;运行脚本后;自动停止了服务; ) 还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本) 上面的两种不知道你想做哪种 |
|
| 第6楼 boyhong | 发表于 2007-04-26 23:05 |
| 初级用户 发帖 15 积分 32 | |
|
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
而不要再次双击脚本这种会自动的~~~ 感谢班班的关注. |
|
| 第7楼 bjsh | 发表于 2007-04-26 23:41 |
| 银牌会员 发帖 621 积分 2,000 | |
|
你的不能用计划任务是吧;
|
|
| 第8楼 bjsh | 发表于 2007-04-26 23:43 |
| 银牌会员 发帖 621 积分 2,000 | |
|
不能用做计划任务;
就写个bat;做成自启动系统服务; 时刻监视时间;来确定是否开启或关闭你指定的服务 |
|
| 第9楼 everest79 | 发表于 2007-04-27 01:57 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
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 ] |
|
| 第10楼 bjsh | 发表于 2007-04-27 02:06 |
| 银牌会员 发帖 621 积分 2,000 | |
|
to:everest79
他要求 在 不能启用schedule的情况下; 运行脚本后自动在规定时间外停用指定的服务; 也就是说:
如果现在时间13点钟 运行该脚本; 则会启动服务; 如果一直不关机;当到了18:00时;如果不再此双击脚本的话;服务是不会自动停止的; 我觉得倒不如 做个循环 然后做成服务. |
|
| 第11楼 everest79 | 发表于 2007-04-27 02:13 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
我一直想在计数器或日志服务里找到一个可以触发外部命令的方法,不过还没发现,嘿嘿
|
|
| 第12楼 boyhong | 发表于 2007-04-27 06:52 |
| 初级用户 发帖 15 积分 32 | |
Originally posted by bjsh at 2007-4-26 01:06 PM: 谢谢各位的关心~~ 对的,我的电脑很少关机,充当服务器角色。。。 这种情况下,电脑上有个服务是定时开启定时关闭的。 我想用批处理来实现。可以吗? |
|
| 第13楼 boyhong | 发表于 2007-04-27 06:56 |
| 初级用户 发帖 15 积分 32 | |
Originally posted by everest79 at 2007-4-26 12:57 PM: 循环不直去。。。上边这个开了,但就关不了。 每天都有一个特定的时间段开启我的这个服务,8:00-17:00,其它时间这个服务是停止的,但这台电脑是一直开机的24*7小时服务的。。 |
|
| 第14楼 flyinspace | 发表于 2007-04-27 07:53 |
| 银牌会员 发帖 517 积分 1,206 | |
|
直接运行,就不管咯。 @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 |
|
| 第15楼 vkill | 发表于 2007-04-27 08:00 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by flyinspace at 2007-4-27 07:53: 貌似没有定义a何来1/(a/8) ? |
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |