找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32843|回复: 11

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

[复制链接]
发表于 2016-9-17 23:14:46 | 显示全部楼层 |阅读模式
本帖最后由 solan 于 2016-9-20 13:55 编辑

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

评分

参与人数 2PB -2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样
pcl_test -4 发帖前先使用论坛搜索

查看全部评分

发表于 2016-9-17 23:55:32 | 显示全部楼层
  1. powershell -c "((Get-Date)-(Get-Date 2016/9/01)).Days"&pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-9-18 08:05:16 | 显示全部楼层
本帖最后由 solan 于 2016-9-18 08:07 编辑

回复 2# pcl_test

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

老大,我一开始已经搜索查看了论坛关于时间的所有帖子了,没有找到我想要的资料,所以才求助的,不过我接受老大批评
 楼主| 发表于 2016-9-18 08:50:14 | 显示全部楼层
我知道怎么做了,多谢老大
发表于 2016-9-18 11:10:37 | 显示全部楼层
回复 4# solan


    给出代码吧?如何解决的?
发表于 2016-9-18 12:14:39 | 显示全部楼层
回复 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
 楼主| 发表于 2016-9-18 18:11:47 | 显示全部楼层
回复 6# pcl_test


    好的,老大说得是,谢谢你的指点
发表于 2016-9-18 20:40:52 | 显示全部楼层
回复 6# pcl_test


    补个链接:
http://www.bathome.net/viewthread.php?tid=16147
发表于 2016-9-18 23:13:21 | 显示全部楼层
回复 7# solan
第三方,i工具计算日期间隔

  1. i/date    {开始日期} {结束日期}"
复制代码
 楼主| 发表于 2016-9-20 12:56:39 | 显示全部楼层
回复 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"
请按任意键继续. . .
发表于 2016-9-20 13:28:04 | 显示全部楼层
 楼主| 发表于 2016-9-20 13:52:49 | 显示全部楼层
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
请按任意键继续. . .


非常感谢老大不厌其烦的教导
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:30 , Processed in 0.029967 second(s), 16 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表