Board logo

标题: [原创]发一个自动计时的bat [打印本页]

作者: scriptor     时间: 2007-1-13 23:21    标题: [原创]发一个自动计时的bat

上次来的时候,有人问怎么让一个程序,在设定的时间后运行,今天我写了一个,发上来,大家一起改进。


@echo off
:lp
cls
echo.
setlocal enabledelayedexpansion
echo The time now is: %time%
echo.
set si[1]=%time%
echo Press any key to see the result.....
pause >nul

::Select var
   set  th[1]=!si[1]:~0,2!
rem select hour
   set  tm[1]=!si[1]:~3,2!
rem select minute
   set  ts[1]=!si[1]:~6,2!
rem select second
   set  tms[1]=!si[1]:~9,2!
rem select milisecond

:: add one minute to origin.   
::[color=red]这里,你可以自己设定隔多久运行某个程序[/color]
   set /a tm[1]%+=1

::Check output
if "%tm[1]%" equ "60" (set /a th[1]%+=1)
::[color=red]如果大于60分钟,就将小时数加一[/color]

echo.
echo The latest time is: %th[1]%:%tm[1]%:%ts[1]%
echo Attention,the xxx program will run at this time!
pause>nul
goto :lp


[ Last edited by scriptor on 2007-9-14 at 04:07 PM ]
作者: vkill     时间: 2007-1-14 03:06
楼主这样还要看是12小时制或24小时制吧!
作者: scriptor     时间: 2007-1-14 03:14
哦,对了
我忘记了

因为我的就是24机制的

那么我想一下,看要不要改一下
作者: scriptor     时间: 2007-1-14 03:18
你发一个12进制的时间格式给我
我不知道他的格式

或许就只是多了一个

am 或是 pm吧
作者: piaoye0605     时间: 2007-1-15 04:16
试以下
作者: piaoye0605     时间: 2007-1-15 04:16
嘿嘿,听好的!!!
作者: frankwz     时间: 2007-4-14 09:49
强人啊
作者: frankwz     时间: 2007-4-14 09:49
强人啊
作者: gne     时间: 2007-12-31 20:20
又不行啊。。。。
作者: HAT     时间: 2007-12-31 21:04
使用计划任务(at或者schtasks)无法满足要求吗?
作者: everest79     时间: 2007-12-31 22:54
计划任务是个风险程序
作者: qita123456     时间: 2008-4-14 15:12
if %time:~0,2% LEQ 5 echo It's time to do something
如果时间在5点之前就启动命令
作者: xuye     时间: 2008-4-14 19:28    标题: [求助]! 帮我看看这个批处理如何修改!!!

这是我看了别人的批处理后自己制作的一个定时关机bat.

@mode con cols=90 lines=35&color 1f
@echo off  
call :cl
goto input
:1
title  定时关机 !  made by:小野
cls
echo 当前时间:%date% , %time%
echo\&echo 请输入定时关机时间。 (需要24小时制,如17:30  :请使用英文标点)&echo\&echo\
echo 如果要返回菜单功能,按 0 后回车!
echo.  
set tim=
set /p tim=请输入关机时间:
if "\%tim%\"=="\0\" call :cl&goto input
at %tim% /interactive shutdown -s -c "要取消关机请在功能菜单中选择取消关机功能!!"  >nul
if errorlevel 1 cls&echo * 输入错误,请重新输入! &goto 1
echo.
echo.
echo.
echo.
echo ================设置成功!!!==============================
echo.
echo ======关机前记得保存好文档或其他要保存的东东哦!  ^_^=====
ping -n 2 127.1>nul
call :cl
goto input
:2
shutdown -a
cls
echo.
echo.
echo.
title   取消关机成功!! made by:小野
echo.
echo=======================取消关机成功!!!==================
echo.
echo.
echo.
ping -n 2 127.1>nul
goto input
:4
cls
title  功能说明    made by: 小野
echo.
echo.&echo.&echo.&echo.&echo.&echo.
echo ※※※※※※※※※※※※※※※※功能说明:※※※※※※※※※※※※※※※※※※※※※※
echo.
echo.
echo ◇◇◇◇定时关机:  定时关机功能只能在同一天内使用,它可以在同一个时间段内输入多个关机时间,系统会自动按时间顺序启动关机时间(即在第一个关机时间被取消后,在第二个关机时间启动会被自动启动,依次类推!)。设定关机时间后可在功能菜单下面的“你设定的关机时间是:”查看设定的关机时间。
echo.
echo ◇◇◇◇取消关机:  取消关机是在弹出关机倒计时窗口使用才有效!!在没有弹出窗口之前使用虽然会显示取消关机成功,但实际并没有取消定时关机功能,时间一到还会启动定时关机功能!!
echo.
echo ◇◇◇◇退出:      退出程序窗口!!
echo.
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo\&echo.&echo.
pause
goto input

:3
cls&exit
:input
cls
title 功能代码号选择!  
cls
call :card
echo\&echo\&echo\
echo 请输入功能代号:
echo.
set sel=
set /p sel=
if "\%sel%\"=="" goto input
call :%sel%
if errorlevel 1 cls&echo\&echo\&echo\&echo\&echo ========= ☆★输入错误命令,想忽悠在下?!★☆======&call :cl&goto input
:cl
for /l %%i in (1,1,40) do (
echo\
for /l %%a in (1,1,250) do ver>nul
)
goto :eof  
:card
title      功能菜单!  made by: 小野
echo\&echo\&echo.                       
echo\&echo\&echo                                       功能菜单:
echo                ▲△△△△△△△△△△△△△△△△△△
echo                ▲                                  ▲
echo                ▲        1=定时关机                ▲
echo                ▲                                  ▲
echo                ▲         2=取消关机               ▲
echo                ▲                                  ▲
echo                ▲          3=退出                  ▲
echo                ▲                                  ▲
echo                ▲           4=功能说明             ▲
echo                ▲                                  ▲
echo                △△△△△△△△△△△△△△△△△△▲                                   
echo.
echo.
echo.   
echo         (注释:等号左边的为功能代号,请输入左边的的代号!&echo\           
echo               取消关机功能只能在弹出关机倒计时窗口时使用有效!!)
echo.
echo.
echo.
echo             你设定的关机时间是: %tim%     
      

我试了一下定时可以,取消关机也可以,但正如我说明所说的,取消关机必须在弹出关机倒计时窗口是才能取消,有没有办法在设定时间后弹出倒计时窗口之前选择取消关机键能够取消定时关机功能。还有如何修改能够让最后一个语句在设定时间后才在功能菜单中显示。
最后,我使用这个 bat 发生过这样的是我在时间设定那里同以时一间段设定了两个关机时间而且这两个时间相隔一分钟,在第一个关机时间的时候刚开关机程序正常运行,但关到一半就发生了黒屏现象,电脑不会卡死,却无法退出黒屏,这是什么原因?
希望各位高手指教一下!!
还有设定关机时间后即使关机后重启,在到了设定时间也会关机。对吗?