批处理:只复制比日期和时间更新的文件



我需要一个脚本,从目录和子文件夹复制比指定时间(从文件读取)更新的文件到镜像文件夹结构(需要创建)。然而,这需要考虑日期和时间,而不仅仅是日期。

我似乎找不到使用批处理/机器复制或其他方法来做到这一点的方法。任何建议都将是感激的,最好不要使用powershell(我意识到它可能可以做到这一点,但我从来没有使用过它,学习曲线现在似乎有点陡峭)。

我可以调整保存在文件中的日期/时间以适合任何格式。

例如date-time为2016-08-17-18-00-00,则

OrgA1.txt     (2016-08-17-18-01-00) > TargetA1.txt
OrgA2.txt     (2016-08-17-17-00-00) > (not copied, as too old)
OrgBCD3.txt (2016-08-18-09-00-00) > TargetBCD3.txt

我可能需要使用forfiles循环,但不确定如何考虑时间以及日期。

@echo off
setlocal enabledelayedexpansion
set compare=201608171800
for /r %%F in (*) do (
  set file=%%~fF
  for /f "tokens=2 delims=.=" %%I in ('wmic datafile where name^="!file:=\!" get lastmodified /format:list') do (
   if "%%I" geq "%compare%" for /f "tokens=2,* delims=" %%A in ("%%~fF") do echo %%~fF -- N:target%%B
  )
)

您可能需要调整tokens=2,*中的"2"以适应您的需要。

注意:这是缓慢的,因为wmic
由于字符串比较,这适用于YYYYMMDDhhmmssYYYYMMDDhhmm甚至YYYY%compare%格式。

相关内容

  • 没有找到相关文章

最新更新