Board logo

标题: [日期时间] 【已解决】求教一个批处理日期计算的问题 [打印本页]

作者: 樵夫    时间: 2019-3-5 11:11     标题: 【已解决】求教一个批处理日期计算的问题

本帖最后由 樵夫 于 2019-3-6 11:54 编辑

求教一个批处理日期计算的问题。
假设一个变量的值日期格式为:20190331,怎样可以根据这个结果计算出它的后一天日期是:20190401

==============================================================
变量例子:
@echo off
set ZuiDaRiQi=20190331

==============================================================
求助求助,谢谢谢,各位大神不吝赐教!
作者: Batcher    时间: 2019-3-5 12:53

参考:
http://bbs.bathome.net/thread-3056-1-1.html
http://bbs.bathome.net/thread-3330-1-1.html
作者: yhcfsr    时间: 2019-3-5 16:13

第三方命令行 datex
  1. datex -d 2019/03/31 -o 1 -f yyyymmdd
复制代码

作者: ivor    时间: 2019-3-5 20:12

回复 1# 樵夫

楼主结贴吧
  1. @echo off
  2. set ZuiDaRiQi=20190331
  3. powershell -command "& {([System.DateTime]([regex]::Replace('%ZuiDaRiQi%','([0-9]{4})([0-9]{2})([0-9]{2})','$1/$2/$3'))).AddDays(1).ToString('yyyyMMdd')}"
复制代码

作者: 樵夫    时间: 2019-3-6 11:44

回复 4# ivor
怎么再把这个结果输入到另一个变量里呢?
作者: ivor    时间: 2019-3-6 11:50

回复 5# 樵夫
  1. @echo off
  2. set ZuiDaRiQi=20190331
  3. for /f %%a in ('powershell -command "& {([System.DateTime]([regex]::Replace('%ZuiDaRiQi%','([0-9]{4})([0-9]{2})([0-9]{2})','$1/$2/$3'))).AddDays(1).ToString('yyyyMMdd')}"') do (
  4. set a=%%a
  5. )
  6. pause
复制代码

作者: 樵夫    时间: 2019-3-6 11:52

回复 6# ivor
完美解决。多谢多谢!!




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