dos 定时执行作业 dos timer

来源:互联网 发布:游戏连不上手机的网络0 编辑:程序博客网 时间:2024/05/20 20:21

现在定时作业的工具语言很多,最方便的个人认为wondows人肯定数bat莫属,还有一点复古feel,

dos_time_cn.bat 可以定时call 一个bat文件,或者是windows console app 程序

不同区域下的终端时间显示不同,所以准备了两个文件方便日后使用

  1. dos_timer_cn.bat for 中文环境
  2. dos_timer_en.bat for 英文环境

实例1

a) 测试bat文件 test.bat

echo this is a test!

b) dos_timer_cn.bat
mode   con:lines=6mode   con:cols=67@echo off & setLocal EnableDelayedExpansion:startclsif "%1"=="" (@set dd=%date:~0,4%%date:~5,2%%date:~8,2%) else @set dd=%1if "%2"=="" (@set tt=160902) else @set tt=%2@echo Job %3 will run at %dd:~0,4%-%dd:~4,2%-%dd:~6,2% on %tt:~0,2%:%tt:~2,2%:%tt:~4,2%@echo Times now: %date:~0,4%%date:~5,2%%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%@set d= %date:~0,4%%date:~5,2%%date:~8,2%@set t=%time:~0,2%%time:~3,2%%time:~6,2%if %d% geq %dd% goto s1goto exit:s1if %t% geq %tt% goto s2goto exit:s2ECHO START TO RUN %3 ...TIMEOUT 10if "%3"=="" ( @echo Hello world!) else @call %3goto out:exittimeout 3 /NOBREAKgoto start:outif %errorlevel%==0 (echo %3 finished at %date% %time%) else echo running %3 failed at %date% %time%pauseexit

c) 开始-》运行-》cmd回车

d) dos_timer_cn.bat 20160927 123000 test.bat

e) 上图正在等待,伺机执行指定bat .test.bat


f) 12.半执行了test.bat echo this is a test

实例二,call powershell,dos 调用powershell文件

a) 目录结构


b)

test_powershell.bat

powershell -File %cd%\show_hostmsg.ps1pause

show_hostmsg.ps1

$host

c)命令:dos_timer_cn.bat 20160929 124700 test_powershell.bat


d)结果1


e)结果2

附件dos_timer_en.bat

mode   con:lines=6mode   con:cols=67@echo off & setLocal EnableDelayedExpansion:startclsif "%1"=="" (@set dd=%date:~6,4%%date:~0,2%%date:~3,2%) else @set dd=%1if "%2"=="" (@set tt=160902) else @set tt=%2@echo Job %3 will run at %dd:~0,4%-%dd:~4,2%-%dd:~6,2% on %tt:~0,2%:%tt:~2,2%:%tt:~4,2%@echo Times now: %date:~6,4%-%date:~0,2%-%date:~3,2% %time:~0,2%:%time:~3,2%:%time:~6,2%@set d= %date:~6,4%%date:~0,2%%date:~3,2%@set t=%time:~0,2%%time:~3,2%%time:~6,2%if %d% geq %dd% goto s1goto exit:s1if %t% geq %tt% goto s2goto exit:s2ECHO START TO RUN %3 ...TIMEOUT 10if "%3"=="" ( @echo Hello world!) else @call %3goto out:exittimeout 3 /NOBREAKgoto start:outif %errorlevel%==0 (echo %3 finished at %date% %time%) else echo running %3 failed at %date% %time%pauseexit

end.

0 0