中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-17 03:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何实现定时关机? 查看 931 回复 12
楼 主 如何实现定时关机? 发表于 2009-04-18 07:00 ·  中国 河南 安阳 电信
初级用户
积分 33
发帖 29
注册 2009-04-06 01:36
UID 142222
性别 男
状态 离线
由使用者输入时间 格式如9:00
九点后系统自动关机
2 发表于 2009-04-18 09:22 ·  中国 广东 东莞 电信
中级用户
★★
积分 461
发帖 243
注册 2007-10-14 16:56
UID 99730
性别 男
状态 离线
Originally posted by water0 at 2009-4-18 07:00 AM:
由使用者输入时间 格式如9:00
九点后系统自动关机


at 09:00 Shutdown -s
3 发表于 2009-04-18 09:38 ·  中国 上海 松江区 电信
初级用户
积分 20
发帖 24
注册 2009-03-18 05:33
UID 141631
性别 男
状态 离线
首先要保证服务已经启动了!!!
4 发表于 2009-04-20 07:10 ·  中国 河南 安阳 文峰区 电信
初级用户
积分 33
发帖 29
注册 2009-04-06 01:36
UID 142222
性别 男
状态 离线
你写的啥啊!!根本就不能运行
5 发表于 2009-04-20 07:10 ·  中国 河南 安阳 文峰区 电信
初级用户
积分 33
发帖 29
注册 2009-04-06 01:36
UID 142222
性别 男
状态 离线
什么服务啊!
6 发表于 2009-04-20 07:59 ·  中国 湖南 郴州 电信
初级用户
★★
积分 87
发帖 61
注册 2008-09-18 11:32
UID 125941
性别 男
状态 离线
乱写的,见笑了.

@echo off&title 自定义关机时间
color 17
mode con: cols=80 lines=25
net start|find /i "Task Scheduler">nul 2>nul||sc config schedule start= Auto>nul 2>nul&net start schedule>nul 2>nul
:b
echo\
for /f "tokens=1,2,3,4 delims=- " %%a in ('date /t') do set name=%%a年%%b月%%c日 %%d
echo.当前时间为%name% %time:~,-6%
set /p var=请以00:00格式输入一个关机时间,要消除之前设定请输入C:
if "%var%"=="" echo 请输入时间&goto b
if /i %var% == C goto c
at %var% shutdown /f /s /t 0 >nul 2>nul
if %errorlevel% EQU 0 goto a
if not %errorlevel% EQU 0 (
echo 格式有误,请重新输入.
)&(
goto b
)
:a
color 1a
echo.系统将在%var%关机.
goto d
:c
at /d /y >nul 2>nul
echo.已清除关机时间.
goto b
:d
pause
7 发表于 2009-04-20 08:52 ·  中国 广西 梧州 电信
初级用户
★★
积分 168
发帖 78
注册 2006-12-27 09:58
UID 74699
性别 男
状态 离线
搞那么复杂...
直接
shutdown /s /t 时间单位:毫秒
我抬头仰望,原来天还是跟原来一样高.
I look up to the rise, the original days or as high as the original.
8 发表于 2009-04-20 11:30 ·  中国 陕西 汉中 电信
初级用户
积分 41
发帖 23
注册 2008-11-23 17:19
UID 131854
性别 男
状态 离线
抄六楼一部分

@echo off &title 定时关机程序
color 1f
mode con: cols=40 lines=20
echo 请输入定时关机时间,格式如21:00:00
set /p t=
at %t% shutdown -s -t 0
echo 已设置定时关机,系统将在%%t自动关机,按任意键推出
pause
9 发表于 2009-04-20 23:25 ·  中国 云南 昆明 移动
新手上路
积分 17
发帖 10
注册 2007-12-06 15:52
UID 104857
性别 男
状态 离线
这是什么意思啊?mode con: cols=40 lines=20
是指40列20行吗?
10 发表于 2009-04-21 01:46 ·  中国 陕西 汉中 电信
初级用户
积分 41
发帖 23
注册 2008-11-23 17:19
UID 131854
性别 男
状态 离线
显示模式:   MODE CON[:] [COLS=c] [LINES=n]
C是columns的缩写,columns是列的意思
11 发表于 2009-05-22 09:34 ·  中国 河南 安阳 文峰区 电信
初级用户
积分 33
发帖 29
注册 2009-04-06 01:36
UID 142222
性别 男
状态 离线
at %t% shutdown -s -t 0 为啥要在后面家0啊
12 发表于 2009-05-22 12:22 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
Originally posted by water0 at 2009-5-22 09:34:
at %t% shutdown -s -t 0 为啥要在后面家0啊

-t xx
将用于系统关闭的定时器设置为 xx 秒。默认值是 20 秒。
13 发表于 2009-05-25 13:17 ·  中国 四川 攀枝花 电信
初级用户
★★
积分 147
发帖 131
注册 2008-09-22 23:54
UID 126352
性别 男
状态 离线
c 调用命令行函数——system("shutdown -s");
条件判断
int tmcontrol(void)
{
int crr;
struct time curr_time;
gettime(&curr_time);
crr=curr_time.ti_hour;
if(9==crr)
return 0;
}

工作循环自己写吧 可以使用sleep()函数
freedom!
论坛跳转: