Копирование файлов по дате, измененной в пакетном файле - PullRequest
0 голосов
/ 12 сентября 2011

Я пытаюсь скопировать файлы из одного каталога в другой, используя пакетный скрипт DOS.Файлы, которые я хочу скопировать, это 4 или 3 последних файла.Это число будет статичным, но еще не определено.Можно ли в любом случае копировать по дате изменения?

Спасибо

1 Ответ

4 голосов
/ 13 сентября 2011

Вы могли бы:

1) иметь файлы сортировки команды dir в порядке убывания даты изменения;

2) использовать вывод команды dir в цикле `for для копирования соответствующих файлов;

3) считать до 3 (или 4) в цикле for, чтобы ограничить количество копируемых файлов.

@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%"
)
...