标题: [其他] [已解决]如何实现批处理在指定的某个时间关机? [打印本页]
作者: a87750530 时间: 2011-6-25 19:26 标题: [已解决]如何实现批处理在指定的某个时间关机?
本帖最后由 a87750530 于 2011-6-26 21:03 编辑
例如:现在是2011年6月25日19点20分(然后电脑一直开着)
到2012年2月29日18点05分关机
也就是想在指定的某一个时间关机,并且能计算输入关机时间的正确性。年份么越久越好了!
这样的代码如何写,网上倒是定时关机的一大把,可是这样的就没有了,请教给位一下!谢谢!- @echo off
- :powerdown
- MODE con: COLS=80 LINES=40
- cls
- color 0a
- echo ┌————————————————┐
- echo 丨 丨
- echo 丨 %date:~0,4%年%date:~5,2%月%date:~8,2%日 星期%date:~-1,1% %time:~0,2%时%time:~3,2%分 丨
- echo 丨 丨
- echo └———————————————─┘
- echo.
- echo.
- echo.
- echo 格式为2011-06-25
- set /P date=请输入日期:
- echo [24小时制]
- set /p time1=请输入时:
- set /p time2=请输入分:
- echo.
- if /i "%date%"=="" goto powerdown
- if /i "%time1%"=="" goto powerdown
- if /i "%time2%"=="" goto powerdown
- at %date% %time1%:%time2% shutdown -s -t 0 >nul
- echo.
- echo 您的电脑将在%date% %time1%:%time2%时刻关闭
- echo.
- echo 在关机之前,您可以随时取消关机计划
- echo.
- echo.
- echo.
- pause
- exit
复制代码
我写了一下,貌似不会关机啊!
作者: cjiabing 时间: 2011-6-25 19:35
schtasks一行搞定!~
不过schtasks比较复杂,很少人去玩
作者: Batcher 时间: 2011-6-25 19:38
如果要命令行的话,一个简单的schtasks就能搞定;
如果要交互,系统自带的任务计划向导多好啊,何必批处理?
作者: 601997526 时间: 2011-6-25 20:04
不知道楼主的本意是想要任意的年月日还是想只要能关机就行
如果是想要任意时间可以用at %random%
如果是要关机用shutdown
作者: a87750530 时间: 2011-6-25 21:29
本帖最后由 a87750530 于 2011-6-25 21:31 编辑
schtasks /create /ru system /tn shutdown /tr shutdown .exe /st 08:00:00
是不是这样啊?
还不不明白请教楼上的at %random%怎么用在这个代码里面啊?
我是想要在某个时间关机,如现在是2011年6月25日,(然后电脑就一直开着)一直到2012年2月29日14点50分关机,
作者: a87750530 时间: 2011-6-25 22:36
本帖最后由 a87750530 于 2011-6-26 12:29 编辑
- @echo off
- :powerdown
- MODE con: COLS=80 LINES=40
- cls
- color 0a
- echo ┌————————————————┐
- echo 丨 丨
- echo 丨 %date:~0,4%年%date:~5,2%月%date:~8,2%日 星期%date:~-1,1% %time:~0,2%时%time:~3,2%分 丨
- echo 丨 丨
- echo └———————————————─┘
- echo.
- echo.
- echo.
- echo 格式为2011-06-25
- set /P date=请输入日期:
- echo [24小时制]
- set /p time1=请输入时:
- set /p time2=请输入分:
- echo.
- if /i "%date%"=="" goto powerdown
- if /i "%time1%"=="" goto powerdown
- if /i "%time2%"=="" goto powerdown
- at %date% %time1%:%time2% shutdown -s -t 0 >nul
- echo.
- echo 您的电脑将在%date% %time1%:%time2%时刻关闭
- echo.
- echo 在关机之前,您可以随时取消关机计划
- pause
- exit
复制代码
请教楼长的这样关机可不可以?
经过测试,不会关机!如果去掉%date%这段,还有at %date%这段倒是会关机的!请高人帮忙!
作者: 601997526 时间: 2011-6-26 15:50
5# a87750530
没看清楚原来你说的是要指定年月日的
把你写的这代码改了下,你自己去测试下吧- @echo off
-
- :powerdown
-
- MODE con: COLS=80 LINES=40
-
- cls
-
- color 0a
-
- echo ┌——————————————————┐
-
- echo 丨 丨
-
- echo 丨 %date:~0,4%年%date:~5,2%月%date:~8,2%日 星期%date:~-1,1% %time:~0,2%时%time:~3,2%分 丨
-
- echo 丨 丨
-
- echo └—————————————————─┘
-
- echo.
-
- echo.
-
- echo.
-
- echo 格式为2011/06/25
-
- set /P date1=请输入日期:
-
- echo %date1%|findstr "^[2-9][0-9][0-9][0-9]/[0-1][0-9]/[0-3][0-9]$"||goto :错误
-
- if %date1:~0,4% lss %date:~0,4% goto :错误
-
- if %date1:~5,2% gtr 12 goto :错误
-
- if %date1:~8,2% gtr 31 goto :错误
-
- echo [24小时制]
-
- set /p time1=请输入时:
-
- echo %time1%|findstr "^[0-2][0-9]$"||goto :错误
-
- if %date1:~5,2% lss %date:~5,2% gtr 23 goto :错误
-
- set /p time2=请输入分:
-
- echo %time2%|findstr "^[0-5][0-9]$"||goto :错误
-
- set /p 密码=请输入计算机密码(没有请直接按回车键):
-
- echo,%密码%|schtasks /create /tn %random%%random%%random% /sc once /sd %date1% /st %time1%:%time2%:00 /tr "shutdown.exe -s -t 1"
-
- echo.&echo.&echo.
-
- echo 您的电脑将在%date1% %time1%:%time2%时刻关闭
-
- echo.
-
- echo 在关机之前,您可以随时取消关机计划
-
- pause>nul&exit
-
- :错误
-
- echo,你的输入有误,请重新输入......&pause>nul&goto :powerdown
复制代码
作者: a87750530 时间: 2011-6-26 21:00
谢谢楼上的修改,可以关机了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |