Название этого вопроса немного вводит в заблуждение. Основываясь на примере xcopy
опрашивающего, я полагаю, что спрашивающий хочет знать "Как скопировать все созданные файлы ...", а не как получить все файлы (которые я приравниваю с списком ).
Спрашивающий также заявляет, что "расширение файла - .cmd или .bat". Это может означать, что спрашивающий хочет копировать только файлы с этими расширениями, но я думаю, что спрашивающий хочет использовать пакетный сценарий.
Чтобы использовать следующее решение, откройте командную строку и chdir
для папки, в которой находятся копируемые файлы. Затем введите команды, перечисленные ниже, изменив значения SET
в зависимости от ситуации.
SET DESTINATION=C:\destination
SET DATE_FROM=01/01/2005
SET DATE_TO=01/01/2007
> nul forfiles /S /D +%DATE_FROM% /C "cmd /C if @isdir==FALSE 2> nul forfiles /M @file /D -%DATE_TO% && > con ( echo @path && copy /V @path %DESTINATION% )"
Примечание: при этом будут скопированы файлы в подпапках, а также файлы в папке верхнего уровня.
Значения SET
могут быть жестко закодированы непосредственно в строку > nul forfiles...
, то есть требуется только одна строка, но для ясности я использовал подстановку переменных.
Предостережение заключается в том, что оно основано на date modified
(оригинальный вопрос, заданный для date created
)
Благодарим aschipfl (https://stackoverflow.com/a/36585535/1754517) за вдохновение для моего ответа.