中国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
来自 广东
状态 离线
『楼 主』:  自动关机的批处理,哪个高手帮忙改进一下

做了一个自动关机的批处理,但时间以秒为单位,比较麻烦,能否改进一下
@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 楼』:  

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 楼』:  

Originally posted by applecy at 2006-12-28 23:18: 我有个思路``不知道行不`` 判断输入的字符如果不是数字的话跳转重新输入 这样的话可以省去不少功夫`` 不知道可以实现不?还望指教
  7楼的代码中已经有这个功能了。


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

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


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



论坛跳转: