Board logo

标题: [日期时间] 批处理如何获取当天日期指定天数之后的日期,如明天 [打印本页]

作者: 165342222    时间: 2014-4-10 22:28     标题: 批处理如何获取当天日期指定天数之后的日期,如明天

本帖最后由 pcl_test 于 2016-7-23 20:55 编辑

小弟对批处理完全不懂.但是又急需使用一个批处理.网上百度了N天都未果.只能到贵论坛求助

我想写一个批处理.修改日期 获取当前的日期,然后自动加1天,比如今天是4月10号,我运行批处理就一次自动把系统的时间改成4月11号.只要这个很简单的功能,无需任何的多余功能.求大神帮忙
作者: terse    时间: 2014-4-10 22:51

这个论坛应该有的啊 你搜索下
作者: bgst    时间: 2014-4-10 23:34

本帖最后由 bgst 于 2014-4-10 23:36 编辑

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3 delims=/ " %%i in ('date /t') do set year=%%i&set mon=%%j&set date=%%k
set /A date=!date!+1
date %year%/%mon%/%date%

我也是新手,昨天刚学会这种用法,这个代码普通情况下可以改成功,需要系统权限,月底估计修改不成功,那个要算大小月,还要算闰年什么的,对我来说还是太复杂了。
希望对你有用吧
作者: CrLf    时间: 2014-4-11 00:05

本帖最后由 CrLf 于 2014-4-11 00:06 编辑

最简单的是调用 vbs 计算日期:
  1. @echo off
  2. %1 mshta vbscript:createobject("wscript.shell").run("""%~nx0"" : "^&now+1)(close)&exit
  3. echo 次日是:%2
  4. pause
复制代码
高效的纯批算法:http://bbs.bathome.net/viewthread.php?tid=16147
作者: bgst    时间: 2014-4-11 00:10

请问楼上命令的原理,或者如何学习vbs?论坛有资料吗?
作者: CrLf    时间: 2014-4-11 00:11

回复 3# bgst


    楼主的要求比较简单,借 3 楼代码小改一下也可兼容月底日期:
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. set "date="
  4. for /f "tokens=1,2,3 delims=/- " %%i in ("%date%") do set year=%%i&set mon=%%j&set date=%%k
  5. set /A date=!date!+1
  6. date %year%/%mon%/%date%||(
  7.    set /a "mon+=1,year+=mon/13,mon%%=12,date=1"
  8.    date !year!/!mon!/!date!
  9. )
复制代码

作者: CrLf    时间: 2014-4-11 03:47

本帖最后由 CrLf 于 2014-4-11 04:26 编辑

回复 5# bgst


是用协议调用 vbs,俗称地址栏脚本...其实这是独立于 mshta 的
mshta 是 hta 宿主,hta 么大概可以理解成本地 htm,不过权限比 htm 高
此方法由 est 大牛首创
参考:
http://bbs.bathome.net/thread-3271-1-1.html
http://bbs.bathome.net/thread-9377-1-1.html
http://bbs.bathome.net/viewthread.php?tid=11516
-----------------------------------------------------------------
说多了,论坛有 broly 自编自导自演的教程,我也是看这个入门的
http://www.bathome.net/thread-13347-1-1.html
用的过程中发现不懂就去查脚本技术手册(vbsedit 里按 F1 就出来了),那是最详细的了,也相对权威
http://bbs.bathome.net/viewthread.php?tid=1329
也可以上 w3school 自学,不过一方面讲得不是很详细,另一方面它讲的 vbs 是用在网页里的,大概是用来给 asp 打基础吧,相比之下,w3c 对 html/css/js/jquery 什么的描述倒是比较详细
http://www.w3school.com.cn/vbscript/index.asp
每个宿主都有自己的对象,这些对象是不通用的,wscript/cscript 有 WSH,mshta 有 MySampleHTA,w3school 只提浏览器的 window,不提其他两个。
作者: qzwqzw    时间: 2014-4-11 17:29

我之前一般用time来给date+1
  1. @echo off
  2. echo %date% %time%
  3. set 当前时间=%time%
  4. time 23:59:59.99
  5. ping -n 1 -w 500 1.1 >nul
  6. time %当前时间%
  7. echo %date% %time%
复制代码

作者: 165342222    时间: 2014-4-11 18:47

本帖最后由 165342222 于 2014-4-11 18:53 编辑
回复  bgst


    楼主的要求比较简单,借 3 楼代码小改一下也可兼容月底日期:
CrLf 发表于 2014-4-11 00:11




    今天家里停电,现在才来回复各位,很抱歉

因为是自动的点击更改时间的批处理.月底就是个问题,用了大神的这个批处理还是无法月底自动跳到下个月,我的环境是win7的.还劳烦大神们帮下忙,不需要额外的显示时间,单纯的点击批处理就自动加一天

调用VBS曾经尝试过,瞬间CPU会百分百,所以这点很蛋疼.

4楼的可以兼容月底,但是调用的是VBS....
作者: terse    时间: 2014-4-11 18:50

上面一个也不行吗?




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