我正在尝试根据时间复制最新的文件,我尝试了下面的脚本,但它复制的所有文件都不是最新的文件:
FOR /F %%I IN ('DIR "%FILE1%\CC*.txt" /B /O:-D /s') DO COPY %%I C:\Hyp\New\
例如:
xyz1.txt -- 4:23 xyz2.txt -- 4:25 xyz3.txt -- 4:30
但我只需要复制最新的文件,即4:30
,请帮助(不是所有文件)。
答案 0 :(得分:1)
你很亲密。不是在FOR
循环的bode内复制,而是将文件存储在变量(比如LATEST
)中,每次迭代都会覆盖它。循环完成后,最新文件存储在变量中,假设您定义排序顺序,如/O:D
(最先列出的最旧文件)。
这是固定的脚本:
FOR /F %%I IN ('DIR "%FILE1%\CC*.txt" /B /A:-D /T:W /O:D /S') DO SET "LATEST=%%~I"
COPY "%LATEST%" "C:\Hyp\New\"
我添加了过滤器/A:-D
以便仅枚举文件(没有目录)
此外,我添加了/T
选项,允许选择要使用的文件日期:状态W
用于上次修改(默认),C
用于创建,或A
用于最后访问。