根据批处理文件中修改的日期复制文件

时间:2011-09-12 17:50:37

标签: scripting batch-file copy

我正在尝试使用DOS批处理脚本将文件从一个目录复制到另一个目录。我要复制的文件是4或3个最新文件。这个数字将是静态的,但还有待确定。无论如何都要根据修改日期进行复制?

谢谢

1 个答案:

答案 0 :(得分:4)

你可以:

1)按修改日期的降序排列dir命令排序文件;

2)在`for循环中使用dir命令的输出来复制相应的文件;

3)在for循环中计数到3(或4)以限制复制的文件数。

@ECHO OFF
SET "srcdir=D:\Source"
SET "tgtdir=D:\Target"
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
  SET /A cnt+=1
  SETLOCAL EnableDelayedExpansion
  IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
  ENDLOCAL
  COPY "%srcdir%\%%F" "%tgtdir%"
)