Board logo

标题: [日期时间] 【已解决】批处理如何计算两个指定日期之间相差的天数? [打印本页]

作者: solan    时间: 2016-9-17 23:14     标题: 【已解决】批处理如何计算两个指定日期之间相差的天数?

本帖最后由 solan 于 2016-9-20 13:55 编辑

请教时间比较的问题
我在安装了某个程序后会在本地产生一个包含当时日期的txt文件,我想在每次手动执行某个批处理时,把当前的日期跟那个txt文件所指定的日期进行比较,如果快3个月了就执行某个命令,没到3个月的话执行第二个命令;如果电脑时间被修改成安装程序之前的日期,就执行另外的命令。
请问:这样的批处理怎么写?
       安装程序时为了让当初的时间写到txt文件里,需要另外一个批处理,这个我会  echo %date%>time.txt,但是时间以怎么样的格式为好我就不知道了。
作者: pcl_test    时间: 2016-9-17 23:55

  1. powershell -c "((Get-Date)-(Get-Date 2016/9/01)).Days"&pause
复制代码

作者: solan    时间: 2016-9-18 08:05

本帖最后由 solan 于 2016-9-18 08:07 编辑

回复 2# pcl_test

老大,这个安装时的日期是不固定的,我该怎么读取那个time.txt文件里面的日期呢?

老大,我一开始已经搜索查看了论坛关于时间的所有帖子了,没有找到我想要的资料,所以才求助的,不过我接受老大批评
作者: solan    时间: 2016-9-18 08:50

我知道怎么做了,多谢老大
作者: ygqiang    时间: 2016-9-18 11:10

回复 4# solan


    给出代码吧?如何解决的?
作者: pcl_test    时间: 2016-9-18 12:14

回复 3# solan

嗯,“搜索查看了论坛关于时间的所有帖子了”这肯定不是真的,至于为什么“没有找到我想要的资料”,原因不外乎:1、搜索的关键字不适当 2、思路不对 3、没有深入搜索和测试已有的代码 4、因为很少学习甚至从不学习,不会变通、举一反三 5、发帖得结果最直接省事。要了解并深信一件实事,那就是你不是在论坛上提相同或类似的问题的第一个人。
http://www.bathome.net/viewthread.php?tid=34787
http://www.bathome.net/viewthread.php?tid=3330
http://www.bathome.net/viewthread.php?tid=3334
http://www.bathome.net/viewthread.php?tid=874
http://www.bathome.net/viewthread.php?tid=6586
http://www.bathome.net/viewthread.php?tid=39338
作者: solan    时间: 2016-9-18 18:11

回复 6# pcl_test


    好的,老大说得是,谢谢你的指点
作者: CrLf    时间: 2016-9-18 20:40

回复 6# pcl_test


    补个链接:
http://www.bathome.net/viewthread.php?tid=16147
作者: happy886rr    时间: 2016-9-18 23:13

回复 7# solan
第三方,i工具计算日期间隔
  1. i/date    {开始日期} {结束日期}"
复制代码

作者: solan    时间: 2016-9-20 12:56

回复 2# pcl_test


    这个代码能够把天数打印在屏幕上,那这么提取呢?
  1. @echo off
  2. for /f %%a in (time.txt) do (set k=%%a)
  3. echo,%k%
  4. set d=powershell -c "((Get-Date)-(Get-Date %k%)).Days"
  5. echo,%d%
  6. pause
复制代码
我这样写还是提取不了,执行结果:
2016/09/18
powershell -c "((Get-Date)-(Get-Date 2016/09/18)).Days"
请按任意键继续. . .
作者: pcl_test    时间: 2016-9-20 13:28

回复 10# solan

发帖前先使用论坛搜索
http://www.bathome.net/thread-2189-1-1.html
http://www.bathome.net/viewthread.php?tid=38647
http://www.bathome.net/viewthread.php?tid=39067
http://www.bathome.net/viewthread.php?tid=38346
作者: solan    时间: 2016-9-20 13:52

for命令上半年白学了,居然没想到
for /f %%a in (time.txt) do (set k=%%a)
echo,%k%
for /f "delims=" %%i in ('powershell -c "((Get-Date)-(Get-Date %k%)).Days"') do (set d=%%i)
echo,%d%
pause

结果如下:
C:\Users\solan\Desktop>for /F %a in (time.txt) do (set k=%a )

C:\Users\solan\Desktop>(set k=2016/09/18 )

C:\Users\solan\Desktop>echo,2016/09/18
2016/09/18

C:\Users\solan\Desktop>for /F "delims=" %i in ('powershell -c "((Get-Date)-(Get-Date 2016/09/18)).Days"') do (set d=%i )

C:\Users\solan\Desktop>(set d=2 )

C:\Users\solan\Desktop>echo,2
2

C:\Users\solan\Desktop>pause
请按任意键继续. . .


非常感谢老大不厌其烦的教导




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