批处理文件复制创建的最新文件(未修改)

时间:2013-11-08 11:25:28

标签: batch-file

我知道有很多关于复制最新文件的批处理文件的问题。但我似乎无法找到满足我要求的那个。

我有一个批处理文件......

(@echo off & setlocal enableextensions enabledelayedexpansion) & (set myfolder_=Z:\myfolder1) & (for /f "delims=" %%f in ('dir /o:d /a:-d /b "!myfolder_!\*.mp3"') do (set latest_=!myfolder_!\%%~nxf)) & (if defined latest_ (echo rem latest file "!latest_!" & xcopy "!latest_!" "Z:\myfolder2" /V /D /Y) else (echo No designated files found in "!myfolder_!")) & (Pause) & (endlocal & goto :EOF)

它需要按创建日期复制最新文件,但目前似乎根据修改日期进行排序。

例如,如果我修改旧文件上的mp3标记,则此脚本似乎会选择并复制该文件。

注意延迟扩展已启用,因为我必须将其作为单行运行。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

使用/TC进行解析时,在dir命令中包含for /F

(@echo off & setlocal enableextensions enabledelayedexpansion) & (set myfolder_=Z:\myfolder1) & (for /f "delims=" %%f in ('dir /TC /OD /A-D /B "!myfolder_!\*.mp3"') do (set latest_=!myfolder_!\%%~nxf)) & (if defined latest_ (echo rem latest file "!latest_!" & xcopy "!latest_!" "Z:\myfolder2" /V /D /Y) else (echo No designated files found in "!myfolder_!")) & (Pause) & (endlocal & goto :EOF)

应该工作。

  

/T控制显示或用于排序的时间字段
   timefield C创作
               A上次访问权限
               W最后写

dir /?第二个帮助页面开始。