Board logo

标题: [其他] 命令行日期时间计算,按指定格式输出 [打印本页]

作者: laolong    时间: 2016-6-22 16:34     标题: 命令行日期时间计算,按指定格式输出

本帖最后由 laolong 于 2016-6-22 16:43 编辑

DateCalc -- 命令行日期时间计算
V2.2
因批处理计算日期时间比较麻烦,于是写了这个命令行程序。
运行于 XP 及以上Windows系统
在繁体中文系统中,以繁体中文显示,在其他系统中以简体中文显示。
  1. DateCalc - 命令行日期时间计算
  2. V2.2  Copyright(C) 2016 hnfeng
  3. 格式1: DateCale.exe [/NowD|/NowDT]
  4. 格式2: DateCale.exe <参数1>  <参数 2>  [参数3]  [参数4]
  5. 参数:
  6.     /?        显示帮助
  7.     /NowD     按当前系统的日期格式显示日期
  8.     /NowDT    按当前系统的日期格式显示日期和时间
  9.    参数1 = <d|m|y|w|h|n|s>    指定计算单位
  10.     d         指定计算单位为“天”
  11.     m         指定计算单位为“月”
  12.     y         指定计算单位为“年”
  13.     w         指定计算单位为“周”
  14.     h         指定计算单位为“小时”
  15.     n         指定计算单位为“分钟”
  16.     s         指定计算单位为“秒”
  17.    参数2      加减的量。例如: 5 或 -5
  18.    参数3      日期[和时间]的初始值。省略时为当前日期[和时间]
  19.               常见格式为: "yyyy/mm/dd [hh:mm:ss]"
  20.               也可以用 /NowD, /NowDT 代替当前日期[和时间]
  21.    参数4      输出结果的格式。缺省时,输出格式与“参数3”相同。
  22.               可以含数字1至6、英文字母、下划线,可以任意组合。
  23.               英文字母和下划线不变,而 123456 分别代表
  24.               日期格式的6个部分: "1/2/3 4:5:6",即:
  25.                    1   2  3   4  5  6
  26.                   2016/01/02 11:12:13
  27.                   01/02/2016 11:12:13
  28. 例子:
  29.     DateCalc.exe /NowD
  30.     DateCalc.exe d 7
  31.     DateCalc.exe d 7 /nowdt
  32.     DateCalc.exe w -5 "2016/6/1"
  33.     DateCalc.exe h 5 "2016/6/1 10:02:03"
  34.     DateCalc.exe h 5 "2016/6/1 10:02:03" "123456"
  35.     DateCalc.exe d -7 "2016/6/1" "23"
  36.     DateCalc.exe d -7 /nowd "23"
  37.     DateCalc.exe h 8 "23_45"
  38.     DateCalc.exe h 0 /nowdt "Filename_123_45"
复制代码
  1. DateCalc.exe /nowd   (获取当前系统日期)
  2. 2016/06/22
  3. --------------------------
  4. DateCalc.exe /nowdt   (获取当前系统日期时间)
  5. 2016/06/22 16:31:51
  6. --------------------------
  7. DateCalc.exe d 7   (当前系统日期加 7 天)
  8. 2016/06/29
  9. --------------------------
  10. DateCalc.exe h -8   (当前日期时间减 8 小时)
  11. 2016/06/22 08:31:51
  12. --------------------------
  13. DateCalc.exe d -1 2016/3/1   (指定日期减 1 天)
  14. 2016/02/29
  15. --------------------------
  16. DateCalc.exe n 30 "2016/2/28 23:50:50"   (指定日期时间加 30 分钟)
  17. 2016/02/29 00:20:50
  18. --------------------------
  19. DateCalc.exe n 30 "2000/1/1 20:10:30" "123_456"   (指定日期时间加 30 分钟后,按
  20. 照指定格式输出)
  21. 20000101_204030
  22. --------------------------
  23. DateCalc.exe d -3 /NowDT "FileName_Test_23_45"   (当前日期时间减 3 天后,按照指
  24. 定格式输出)
  25. FileName_Test_0619_1631
  26. --------------------------
  27. DateCalc.exe h 0 /nowdt ABCDE_fghijklmnopqrstuvwxyz_123_456   (当前日期时间加 0
  28. 小时,按照指定格式输出)
  29. ABCDE_fghijklmnopqrstuvwxyz_20160622_163152
  30. ====================================================
  31. DateCalc.exe x 3 "2000/1/1 10:10:10"   (第1个参数错误)
  32. Error: 第1个参数错误!
  33. errorlevel:1
  34. --------------------------
  35. DateCalc.exe n xx "2000/1/1 10:10:10"   (第2个参数错误)
  36. Error: 第2个参数错误!
  37. errorlevel:2
  38. --------------------------
  39. DateCalc.exe w -1 "2000/1/1" "123-456"   (第4个参数错误--含无效字符“-”)
  40. Error: 第3或第4个参数错误!
  41. errorlevel:4
  42. --------------------------
复制代码
Demo.bat
  1. @echo off
  2. for /f %%i in ('DateCalc.exe /NowD') do echo 当前日期:%%i
  3. for /f %%i in ('DateCalc.exe d -3 /NowD File_Name_123') do set filename=%%i.log
  4. echo 3天前文件名: %filename%
  5. echo.
  6. for /f "delims=" %%i in ('DateCalc.exe /NowDT') do echo 当前日期时间:%%i
  7. for /f %%i in ('DateCalc.exe h 8 /NowDT Test_123_45') do set filename=%%i.log
  8. echo 8小时以后文件名: %filename%
  9. echo.
  10. for /f "delims=" %%i in ('DateCalc.exe n 30 "2001/2/3 11:12:13"') do echo 指定时间 2001/2/3 11:12:13
  11. for /f %%i in ('DateCalc.exe n 30 "2001/2/3 11:12:13" Test_23_45') do set filename=%%i.txt
  12. echo 30分钟以后文件名: %filename%
  13. echo.
  14. pause
复制代码
结果:
  1. 当前日期:2016/06/22
  2. 3天前文件名: File_Name_20160619.log
  3. 当前日期时间:2016/06/22 16:42:44
  4. 8小时以后文件名: Test_20160623_0042.log
  5. 指定时间 2001/2/3 11:12:13
  6. 30分钟以后文件名: Test_0203_1142.txt
复制代码
权限不够传不了图片,也传不了附件。
网盘下载吧:

链接:http://pan.baidu.com/s/1kUYrsDh 密码:eeio
作者: codegay    时间: 2016-6-22 17:58

楼主是DateCalc 作者?
作者: laolong    时间: 2016-6-23 12:47

回复 2# codegay


    是的。只是与这里ID不同
作者: CrLf    时间: 2016-6-28 00:37

已收录:
http://www.bathome.net/s/tool/?key=datecalc
作者: laolong    时间: 2016-6-28 10:43

回复 4# CrLf


    荣幸

谢谢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2