中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 自动关机的批处理,哪个高手帮忙改进一下
作者:
标题: 自动关机的批处理,哪个高手帮忙改进一下 上一主题 | 下一主题
daitu3
初级用户





积分 83
发帖 35
注册 2006-10-30
来自 广东
状态 离线
『楼 主』:  自动关机的批处理,哪个高手帮忙改进一下

做了一个自动关机的批处理,但时间以秒为单位,比较麻烦,能否改进一下

  Quote:
@echo off
set /p time=请设置关机时间(必须以秒为单位):
SHUTDOWN -S -T %time%
@ECHO 任务完成,%time%秒后自动关闭计算机!
ping -n 1 127.0.0.1 >nul
exit





求学永无止境!
2006-12-28 02:42
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (304494304)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


  改进哪些东西呢?说具体一点。


2006-12-28 03:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
applecy
初级用户




积分 168
发帖 78
注册 2006-12-27
状态 离线
『第 3 楼』:  

直接用-t指定时间不就好了?

不过我不明白最后为什么要用ping -n 1 127.0.0.1呢?

2006-12-28 03:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
daitu3
初级用户





积分 83
发帖 35
注册 2006-10-30
来自 广东
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by applecy at 2006-12-28 03:36 AM:
直接用-t指定时间不就好了?

不过我不明白最后为什么要用ping -n 1 127.0.0.1呢?

三楼说的不清楚。。
ping -n 1 127.0.0.1 起延时作用 啊



求学永无止境!
2006-12-28 06:40
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (304494304)  编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 5 楼』:  


@echo off
set /p time=请设置关机时间(必须以分钟为单位):
set /a ftime=%time%*60
SHUTDOWN -S -T %ftime%
@ECHO 任务完成,%time%秒后自动关闭计算机!
ping -n 1 127.0.0.1 >nul
exit


2006-12-28 06:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 6 楼』:  

对不起,我改进了一下

@echo off
set /p second=请设置关机时间(以秒为单位可以的):
set /a minute=%second%*60 (这个可要可不要,就看你怎么想的)
SHUTDOWN -S -T %minute%
@ECHO 任务完成,%minute%秒后自动关闭计算机!
exit


2006-12-28 10:43
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zhoung0
初级用户





积分 54
发帖 18
注册 2005-11-5
状态 离线
『第 7 楼』:  

@echo off
echo           [定时关机]
echo.
IF not EXIST %SystemRoot%\system32\shutdown.exe echo 没有发现shutdown.exe,程序将终止!& goto :end
:back
echo ------------------------------
echo 你要在几分钟之后关闭计算机?
set /p shuttime=请在提示符后输入[单位:分钟]
echo %shuttime%|findstr "^[0-9]*$" >nul
if %ERRORLEVEL% EQU 1 echo       错误!请输入数字。& goto back
if %shuttime% GTR 5100000 echo     出错了,请输入1~5100000之间。& goto back
set /a shutmiao=%shuttime%*60
shutdown -s -f  -c "计算机将在%shuttime%分钟后关闭,请及时保存你手头的工作。" -t %shutmiao%
echo.
set /p escs=是否要取消关机,是请按[Y]
echo ------------------------------
echo %escs%|findstr "^[Yy]*$" >nul
if %ERRORLEVEL% EQU 0 shutdown -a  
:end
echo 按任意键退出。
pause>nul
exit

2006-12-28 23:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
scriptor
银牌会员




积分 1187
发帖 555
注册 2006-12-21
状态 离线
『第 8 楼』:  

哦,好麻烦啊

呵呵

不过还是有东西学啊 "findstr",好东西啊!

2006-12-28 23:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 9 楼』:  

set /a /p time=
if %time%==0 "叫他重输"

2006-12-28 23:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
applecy
初级用户




积分 168
发帖 78
注册 2006-12-27
状态 离线
『第 10 楼』:  

我有个思路``不知道行不``
判断输入的字符如果不是数字的话跳转重新输入
这样的话可以省去不少功夫``

不知道可以实现不?还望指教

2006-12-29 12:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by applecy at 2006-12-28 23:18:
我有个思路``不知道行不``
判断输入的字符如果不是数字的话跳转重新输入
这样的话可以省去不少功夫``

不知道可以实现不?还望指教


  7楼的代码中已经有这个功能了。


2006-12-29 13:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: