中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于时间段控制服务的困惑~~谢谢高手指点
« [1] [2] [3] »
作者:
标题: 关于时间段控制服务的困惑~~谢谢高手指点 上一主题 | 下一主题
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
状态 离线
『第 7 楼』:  

你的不能用计划任务是吧;

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
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: