Board logo

标题: [系统相关] [已解决]如何用批处理执行每周不同时间段关机? [打印本页]

作者: itway    时间: 2009-12-26 01:06     标题: [已解决]如何用批处理执行每周不同时间段关机?

如何用批处理执行每周不同时间段关机
我要执行的效果是:周一到周五19:00-22:00
                                周六到周日8:00-23:00

请教高手帮助为谢!

[ 本帖最后由 itway 于 2009-12-26 01:07 编辑 ]
作者: Batcher    时间: 2009-12-26 01:09

周一到周五,19:00-22:00,如果电脑开机,则自动关机;
周六到周日,8:00-23:00,如果电脑开机,则自动关机;
其他时间开机,批处理不做任何操作。
是这个意思么?
作者: itway    时间: 2009-12-26 01:11

感谢管管
是这个意思
也就是在这个时段电脑运行的要强制关机
作者: itway    时间: 2009-12-26 01:13

请求管管的帮助为谢!
作者: Batcher    时间: 2009-12-26 01:43

参考:批处理shutdown命令根据不同的时间段执行相应的定时关机方案
http://bbs.bathome.net/thread-2955-1-1.html
作者: itway    时间: 2009-12-26 01:47

我是新手
那个我早已看过了
但没有调试出来
还望管管 直接贴出代码为谢!
作者: itway    时间: 2009-12-26 14:39

没有人理我
自己顶
作者: Batcher    时间: 2009-12-26 15:22     标题: 回复 6楼 的帖子

先把你自己尝试过的代码贴出来看看?
作者: itway    时间: 2009-12-26 15:35

@echo off
if %time% at Monday-Friday 19:00-22:00  (
Shutdown -s
) else %time% at Saturday-Sunday 22:00-23:00 (
Shutdown -s
)

[ 本帖最后由 itway 于 2009-12-26 15:38 编辑 ]
作者: Batcher    时间: 2009-12-26 15:41     标题: 回复 9楼 的帖子

你从哪个教程或者帖子里面看到at命令可以这样使用?
作者: keen    时间: 2009-12-26 15:43

如果觉得显示关机的对话框时间太长的话,可以把代码中objShell.Run "cmd /c Shutdown -s -t 60"的60写小点.
vbs代码:
  1. strStartTime1 = 190000
  2. strEndTime1 = 220000
  3. strStartTime2 = 80000
  4. strEndTime2 = 230000
  5. strNowTime = Replace(Time, ":", "")
  6. Set objShell = CreateObject("Wscript.Shell")
  7. intWeekDay = WeekDay(Date)
  8. If intWeekDay > 1 And intWeekDay < 7 Then
  9.     If Int(strNowTime) > strStartTime1 And Int(strNowTime) < strEndTime1 Then
  10.         objShell.Run "cmd /c Shutdown -s -t 60"
  11.     End If
  12. Else
  13.     If Int(strNowTime) > strStartTime2 And Int(strNowTime) < strEndTime2 Then
  14.         objShell.Run "cmd /c Shutdown -s -t 60"
  15.     End If
  16. End If
复制代码

作者: itway    时间: 2009-12-26 15:43

原帖由 Batcher 于 2009-12-26 15:41 发表
你从哪个教程或者帖子里面看到at命令可以这样使用?

感谢管管!
我是新手
对这个东东不了解^_^

[ 本帖最后由 itway 于 2009-12-26 15:47 编辑 ]
作者: itway    时间: 2009-12-27 16:11

我来学习
我来学习
但目前用对我来讲最重要
希望高手帮助
作者: itway    时间: 2009-12-27 20:21

期待中
努力的顶上去
作者: Batcher    时间: 2009-12-27 23:11

1、以下代码保存为C:\test.bat
  1. @echo off
  2. (echo %date%|find "星期六")||(echo %date%|find "星期日")||goto :WeekDay
  3. if "%time%" geq " 8:00" (
  4.     if "%time%" leq "23:00" (
  5.         echo shutdown -s -f -t 0
  6.     )
  7. )
  8. goto :eof
  9. :WeekDay
  10. if "%time%" geq "19:00" (
  11.     if "%time%" leq "22:00" (
  12.         echo shutdown -s -f -t 0
  13.     )
  14. )
复制代码
2、运行以下命令把C:\test.bat加入到计划任务
  1. schtasks /create /ru system /sc onlogon /tn "Shutdown from BatHome" /tr "C:\test.bat"
复制代码

作者: itway    时间: 2009-12-27 23:22

感谢管管
问题得到解决了
作者: itway    时间: 2009-12-27 23:46

为同一问题所困的朋友们
为了简单
也可以用任务计划解决这一问题。
作者: caimingbing    时间: 2010-2-1 10:01

Batcher,你也太强了吧!
作者: tomato007    时间: 2010-2-2 22:38

原帖由 itway 于 2009-12-27 23:22 发表
感谢管管
问题得到解决了

我试过15楼的代码了,能实现在22:00的时候关机,但是在19:00到22:00之间,并不能强行关机啊?
楼主,可以把你的代码贴出来吗?
谢谢!

[ 本帖最后由 tomato007 于 2010-2-2 22:41 编辑 ]
作者: tomato007    时间: 2010-2-3 14:53

有人可以帮忙吗??????




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2