[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
    • pcl_test: 发帖前先使用论坛搜索PB -4

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

评分人数

TOP

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

回复 2# pcl_test

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

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

TOP

我知道怎么做了,多谢老大

TOP

回复 4# solan


    给出代码吧?如何解决的?

TOP

回复 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

TOP

回复 6# pcl_test


    好的,老大说得是,谢谢你的指点

TOP

回复 6# pcl_test


    补个链接:
http://www.bathome.net/viewthread.php?tid=16147

TOP

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

TOP

回复 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"
请按任意键继续. . .

TOP

TOP

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
请按任意键继续. . .


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

TOP

返回列表