我需要一个脚本,将比指定时间(从文件中读取)更新的文件从目录和子文件夹复制到镜像文件夹结构(需要创建)。但是,这需要考虑日期和时间,而不仅仅是日期。
我似乎找不到使用批处理/ robocopy或其他方法来实现此目的的方法。任何建议都会受到赞赏,理想情况下不使用powershell(我意识到它可能会这样做,但我从来没有使用它,现在学习曲线看起来有点陡峭。)
我可以调整文件中保存的日期/时间以适应任何格式。
所以,说日期时间是2016-08-17-18-00-00,那么
Org\A\1.txt (2016-08-17-18-01-00) > Target\A\1.txt
Org\A\2.txt (2016-08-17-17-00-00) > (not copied, as too old)
Org\B\C\D\3.txt (2016-08-18-09-00-00) > Target\B\C\D\3.txt
我可能需要使用forfiles
循环,但不确定如何考虑时间和日期。
答案 0 :(得分:0)
@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
由于字符串比较,这适用于%compare%
格式YYYYMMDDhhmmss
或YYYYMMDDhhmm
甚至YYYY
。