分享

dos 定时执行作业 dos timer

 头大脑小 2017-12-05

现在定时作业的工具语言很多,最方便的个人认为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

  1. echo this is a test!  

b) dos_timer_cn.bat
  1. mode   con:lines=6  
  2. mode   con:cols=67  
  3. @echo off & setLocal EnableDelayedExpansion  
  4. :start  
  5. cls  
  6. if "%1"=="" (@set dd=%date:~0,4%%date:~5,2%%date:~8,2%) else @set dd=%1  
  7. if "%2"=="" (@set tt=160902) else @set tt=%2  
  8. @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%  
  9. @echo Times now: %date:~0,4%%date:~5,2%%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%  
  10. @set d= %date:~0,4%%date:~5,2%%date:~8,2%  
  11. @set t=%time:~0,2%%time:~3,2%%time:~6,2%  
  12. if %d% geq %dd% goto s1  
  13. goto exit  
  14. :s1  
  15. if %t% geq %tt% goto s2  
  16. goto exit  
  17. :s2  
  18. ECHO START TO RUN %3 ...  
  19. TIMEOUT 10  
  20. if "%3"=="" ( @echo Hello world!) else @call %3  
  21. goto out  
  22. :exit  
  23. timeout 3 /NOBREAK  
  24. goto start  
  25. :out  
  26. if %errorlevel%==0 (echo %3 finished at %date% %time%) else echo running %3 failed at %date% %time%  
  27. pause  
  28. exit  

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

  1. powershell -File %cd%\show_hostmsg.ps1  
  2. pause  

show_hostmsg.ps1

  1. $host  

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


d)结果1


e)结果2

附件dos_timer_en.bat

  1. mode   con:lines=6  
  2. mode   con:cols=67  
  3. @echo off & setLocal EnableDelayedExpansion  
  4. :start  
  5. cls  
  6. if "%1"=="" (@set dd=%date:~6,4%%date:~0,2%%date:~3,2%) else @set dd=%1  
  7. if "%2"=="" (@set tt=160902) else @set tt=%2  
  8. @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%  
  9. @echo Times now: %date:~6,4%-%date:~0,2%-%date:~3,2% %time:~0,2%:%time:~3,2%:%time:~6,2%  
  10. @set d= %date:~6,4%%date:~0,2%%date:~3,2%  
  11. @set t=%time:~0,2%%time:~3,2%%time:~6,2%  
  12. if %d% geq %dd% goto s1  
  13. goto exit  
  14. :s1  
  15. if %t% geq %tt% goto s2  
  16. goto exit  
  17. :s2  
  18. ECHO START TO RUN %3 ...  
  19. TIMEOUT 10  
  20. if "%3"=="" ( @echo Hello world!) else @call %3  
  21. goto out  
  22. :exit  
  23. timeout 3 /NOBREAK  
  24. goto start  
  25. :out  
  26. if %errorlevel%==0 (echo %3 finished at %date% %time%) else echo running %3 failed at %date% %time%  
  27. pause  
  28. exit  

end.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多