![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 04:33 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]批处理: 定时关机程序 |
| 可打印版本 3,066 / 15 |
| 第1楼 subi | 发表于 2008-11-22 18:00 |
| 新手上路 发帖 4 积分 6 | |
|
[原创]批处理: 定时关机程序 这是俺的第一个批处理成果,觉得好帮宣传下.
@echo off echo 欢迎使用DOS编写的定时关机程序,本程序在windows xp下(CMD)运行. echo 作者:subi echo 请选择关机方式: echo 指定时间关机请按 1 然后回车 echo 倒计时方式关机请按 2 然后回车 echo 退出请按 3 然后回车 set /p kk= if "%kk%"=="3" goto end3 if "%kk%"=="1" goto dd ::倒计时部分 set /a h=0 set hh=0 ::初设0防止空输入 echo 请输入需要定时的小时数: (注意输入数字前不能有0) set /p hh= set /a h=%hh% echo 请输入需要定时的分数: (注意输入数字前不能有0) set /a m=0 set mm=0 set /p mm= set /a m=%mm% set /a hm=h+m if %hm% equ 0 goto over2 ::防止有人同时输入0 cls echo 距离关机时间还有%h%小时%m%分钟 if %m% equ 0 goto m-no ::修正分数为0的bug :m-have time /t >time.txt for /f "tokens=2,3 delims=: " %%i in (time.txt) do set m2=%%i :m-count time /t >time.txt for /f "tokens=2,3 delims=: " %%j in (time.txt) do set m3=%%j if %m2%==%m3% goto m-count set /a m=m-1 cls echo 距离关机时间还有%h%小时%m%分钟 if %m% neq 0 goto m-have ::分数读完 if %h% equ 0 goto over ::小时数读完 over :m-no set /a h=h-1 set /a m=60 ::用1小时来换60分钟 goto m-have :over del time.txt ::以上为计时器部分 :over2 shutdown -f -s -t 0 ::以下部分为定时器部分 :dd @echo off echo 请输入要关机的小时数: set hd= set hm= set /p hd= echo 请输入要关机的分数: set /p md= cls if "%hd%"=="08" goto uuu ::修正08 BUG set /a hd2=%hd% if %hd2% lss 10 set hd=0%hd2% ::补0容错 if "%md%"=="08" goto uuu set /a md2=%md% if %md2% lss 10 set md=0%md2% :uuu echo 你当前设定的关机时间为 %hd%:%md% :hhh time /t >time.txt for /f "tokens=1,3 delims=: " %%i in (time.txt) do set hhh=%%i if not "%hhh%"=="%hd%" goto hhh :mmm time /t >time.txt for /f "tokens=2,3 delims=: " %%i in (time.txt) do set mmm=%%i if not "%mmm%"=="%md%" goto mmm del time.txt shutdown -f -s -t 0 :end3 exit |
|
| 第2楼 HAT | 发表于 2008-11-22 21:27 |
| 版主 发帖 5,017 积分 9,023 | |
| 第3楼 holucan | 发表于 2008-11-22 23:41 |
| 初级用户 发帖 25 积分 26 | |
|
不错的批处理,里边还是得使用上shutdown这程序。
|
|
| 第4楼 HAT | 发表于 2008-11-22 23:48 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 3楼 XP以上的系统自带shutdown.exe
|
|
| 第5楼 aiqian2008 | 发表于 2008-11-23 00:29 |
| 初级用户 发帖 22 积分 35 | |
|
运行一下,发现一直在循环,cpu100%。一直到指定关机时间才会停
|
|
| 第6楼 HAT | 发表于 2008-11-23 00:55 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 5楼 请不要把代码保存为shutdown.bat或者shutdown.cmd
试试test.bat |
|
| 第7楼 aiqian2008 | 发表于 2008-11-23 01:09 |
| 初级用户 发帖 22 积分 35 | |
|
我把它保存为a.bat,没有保存为shutdown.bat或者shutdown.cmd
看源码就知道选1时,它就会一直在循环 :mmm time /t >time.txt for /f "tokens=2,3 delims=: " %%i in (time.txt) do set mmm=%%i if not "%mmm%"=="%md%" goto mmm |
|
| 第8楼 subi | 发表于 2008-11-23 10:59 |
| 新手上路 发帖 4 积分 6 | |
|
不用循环就能定时的方法, 俺不可能想得出哦.
本程序旨在做出一个定时的思路, 不一定非用于关机呀, 比如定时执行一些程序什么的. |
|
| 第9楼 HAT | 发表于 2008-11-23 11:00 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 8楼 |
|
| 第10楼 subi | 发表于 2008-11-23 11:48 |
| 新手上路 发帖 4 积分 6 | |
|
原来这个思想早有人提出了, 比俺的简略多了, 惭愧.
|
|
| 第11楼 pooronce | 发表于 2008-11-23 13:31 |
| 中级用户 发帖 250 积分 484 | |
|
shutdown在锁定状态(欢迎屏幕)下不工作,这问题一直困扰啊。。。
|
|
| 第12楼 CMStruggling | 发表于 2008-11-23 13:35 |
| 新手上路 发帖 8 积分 14 | |
|
不知道该脚本在Windows Server 2008系统上是否同样可行?
|
|
| 第13楼 lcdj888 | 发表于 2008-11-26 02:14 |
| 新手上路 发帖 1 积分 1 | |
|
学习ing
|
|
| 第14楼 crystal0808 | 发表于 2008-11-26 11:36 |
| 新手上路 发帖 20 积分 6 | |
|
定时关机直接在运行那填入 shutdown -s -t xx 就可以了吧
xx 代表时间,以秒为单位 比如 shutdown -s -t 60,就是一分钟后关机 当然也可以用一些命令来取消定时关机命令 shutdown -a 这些在cmd输入shutdown /?就可以了,也不用整这么麻烦啊 |
|
| 第15楼 qinchun36 | 发表于 2008-11-27 13:39 |
| 高级用户 发帖 400 积分 609 | |
|
为什么不用
at xx:xx shutdown -s -t 0 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |