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

[日期时间] 批处理怎样计算两个日期之间相差的天数?这个数字用来跟另一个数字做比较

[复制链接]
发表于 2022-8-16 14:53:54 | 显示全部楼层 |阅读模式
遇到一个难题,一整个流程是这样的,我需要将文件复制到两个文件夹,使用任务计划来实现每周一次,然后数据保留两个星期,在第三个星期的时候覆盖掉第一个星期的数据,这样子一直下去,我的想法是要执行复制的那一天的日期分别与两个文件夹里的文件的最后修改时间做减法,哪个文件夹的时间>10天,就覆盖掉哪个文件夹里的数据,可是我不知道怎么做这个减法命令操作。我看到站里有一些类似的问题,可是它们都达不到我的要求,所以发帖请求帮助,希望大佬们帮我看看
发表于 2022-8-16 15:19:22 | 显示全部楼层
如果你的两个目标文件夹是在同一个目录中的话,就很简单。
先定位到目标文件夹所在的目录。
  1. dir /b /ad /od
复制代码
第一个显示的文件夹就是你要操作的文件夹。
 楼主| 发表于 2022-8-16 15:37:11 | 显示全部楼层
回复 2# qixiaobin0715
不在同一个文件夹下的
发表于 2022-8-16 16:10:29 | 显示全部楼层
换一种思路:
下载如下第3方工具: http://bcn.bathome.net/tool/find64.exe
并复制到目标文件夹备用。

在全部复制文件到目标文件夹后,执行

  1. find64 . -type f -mtime +10 -delete
复制代码
即可
 楼主| 发表于 2022-8-16 16:31:53 | 显示全部楼层
回复 4# hfxiang
好嘞,这就去试试
发表于 2022-8-17 19:10:29 | 显示全部楼层
回复 1# ethan.huang
  1. @echo off
  2. set "DateA=2022-08-17"
  3. set "DateB=2022-08-05"
  4. call :DateToDays %DateA:~0,4% %DateA:~5,2% %DateA:~8,2% DaysX
  5. call :DateToDays %DateB:~0,4% %DateB:~5,2% %DateB:~8,2% DaysY
  6. set /a DayZ=DaysX-DaysY
  7. echo %DateA%和%DateB%间隔的天数是:%DayZ%
  8. pause
  9. goto :eof

  10. :DateToDays %yy% %mm% %dd% days
  11. setlocal ENABLEEXTENSIONS
  12. set yy=%1&set mm=%2&set dd=%3
  13. if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
  14. set /a dd=100%dd%%%100,mm=100%mm%%%100
  15. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  16. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  17. endlocal&set %4=%j%&goto :EOF
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 18:51 , Processed in 0.018047 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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