楼 主
关于时间段控制服务的困惑~~谢谢高手指点
发表于 2007-04-26 21:55 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
需求:在电脑一直在开机状态下实现本脚本自动在系统时间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 楼
发表于 2007-04-26 22:00 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
好像运行不了~~经过我想,对于1:00-9:00,偏移量是2的话一定会错的。但不知怎么解决已便实现我的这个需求~~
盼高手指点一下
第 3 楼
发表于 2007-04-26 22:07 · 中国 广东 广州 联通
银牌会员
★★★
积分 1,206 发帖 517 注册 2007-03-25 01:18 UID 82819 性别 男
状态 离线
使用 AT 或自己建立计划任务咯。。
at 08:00 "net start ***"
at 17:00 "net stop ***"
若是xp。
at 08:00 "sc start ***"
at 17:00 "net stop ***"
知,不觉多。不知,乃求知
第 4 楼
发表于 2007-04-26 22:20 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
谢谢楼上的~~呵呵。。在那台电脑上不敢开 AT 服务~~怕怕安全性...呵呵。几乎24小时对公网服务的,操作系统还是个2000呢~~~
谢谢您的回复
要是用计划任务的话。还有一个问题,怎么让这个脚本循环执行呢?
[ Last edited by boyhong on 2007-4-26 at 09:28 AM ]
第 5 楼
发表于 2007-04-26 22:29 · 中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000 发帖 621 注册 2007-01-01 00:00 UID 75212 性别 男
状态 离线
我不大理解你的意思;
你是想让该脚本运行后自动判断时间是否在8点到17点之间来决定是否开启服务啊;
(举例: 现在 9点;运行脚本后;自动开启了服务;(现在18点;如果你不再次双击脚本;服务将继续开着;)
现在18点;运行脚本后;自动停止了服务;
)
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
上面的两种不知道你想做哪种
第 6 楼
发表于 2007-04-26 23:05 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
还是想让该脚本运行后;自动判断时间来开启服务;并自动在规定时间之外关掉服务;(而不要用再次双击脚本)
而不要再次双击脚本这种会自动的~~~
感谢班班的关注.
第 7 楼
发表于 2007-04-26 23:41 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000 发帖 621 注册 2007-01-01 00:00 UID 75212 性别 男
状态 离线
第 8 楼
发表于 2007-04-26 23:43 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000 发帖 621 注册 2007-01-01 00:00 UID 75212 性别 男
状态 离线
不能用做计划任务;
就写个bat;做成自启动系统服务;
时刻监视时间;来确定是否开启或关闭你指定的服务
第 9 楼
发表于 2007-04-27 01:57 · 中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564 发帖 1,127 注册 2006-12-25 22:57 UID 74552 性别 男
状态 离线
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 楼
发表于 2007-04-27 02:06 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 2,000 发帖 621 注册 2007-01-01 00:00 UID 75212 性别 男
状态 离线
to:everest79
他要求 在 不能启用schedule的情况下;
运行脚本后自动在规定时间外停用指定的服务;
也就是说:
set /a at=%time:~0,2%,1/(a/8),1/(16/a)&&net start service||net stop service
如果现在时间13点钟 运行该脚本;
则会启动服务;
如果一直不关机;当到了18:00时;如果不再此双击脚本的话;服务是不会自动停止的;
我觉得倒不如 做个循环 然后做成服务.
第 11 楼
发表于 2007-04-27 02:13 · 中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564 发帖 1,127 注册 2006-12-25 22:57 UID 74552 性别 男
状态 离线
我一直想在计数器或日志服务里找到一个可以触发外部命令的方法,不过还没发现,嘿嘿
第 12 楼
发表于 2007-04-27 06:52 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
Originally posted by bjsh at 2007-4-26 01:06 PM:
to:everest79
他要求 在 不能启用schedule的情况下;
运行脚本后自动在规定时间外停用指定的服务;
也就是说:
如果现在时间13点钟 运行该脚本;
...
谢谢各位的关心~~
对的,我的电脑很少关机,充当服务器角色。。。
这种情况下,电脑上有个服务是定时开启定时关闭的。
我想用批处理来实现。可以吗?
第 13 楼
发表于 2007-04-27 06:56 · 中国 北京 鹏博士BGP
初级用户
★
积分 32 发帖 15 注册 2007-04-26 20:57 UID 86561 性别 男
状态 离线
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小时服务的。。
第 14 楼
直接运行,就不管咯。
发表于 2007-04-27 07:53 · 中国 广东 广州 联通
银牌会员
★★★
积分 1,206 发帖 517 注册 2007-03-25 01:18 UID 82819 性别 男
状态 离线
@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 楼
发表于 2007-04-27 08:00 · 中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
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) ?
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正