См. ROBOCOPY для расширенных параметров копирования (например, / XO = исключить более старые файлы).
При использовании COPY или XCOPY вам придется вручную проходить по файлам и копировать их по отдельности после выполнения ваших тестов.
Зацикливание (рекурсивно) файлов в папке:
for /r "%directory%" %%f in (*.*) do (
rem ... do sth with file %%f
)
Вы также можете получить, например, имена / каталоги файлов с помощью %~nf
или %~df
Получить дату / время файла:
for /f %f in ("%file%") do (
set timestamp=%~tf
set day=%timestamp:~0,2%"
set month=%timestamp:~3,2%"
rem ... etc.
)
Получить текущую дату / время:
echo Date: %date% rem (or: set currentdate=%date%)
echo Time: %time%
Вы должны будете выполнить сравнение самостоятельно (сначала сравните год, затем сравните месяц, затем ... и т. Д.). Это может быть немного сложнее, или, по крайней мере, много работы.
Чтобы проверить, является ли файл скрытым:
for /f "delims=" %%a in ('attrib "%file%"') do (
set attribs=%%a
if "!attribs:~4,1!"=="H" rem ... file is hidden
)
Не забудьте установить это в начале вашей партии:
setlocal enabledelayedexpansion
Это гарантирует, что вы можете устанавливать / читать переменные внутри цикла. Тогда используйте !variable!
вместо %variable%
.
Это только основные инструменты, предстоит еще много работы и некоторые подводные камни для обхода. Вы действительно должны подумать об использовании ROBOCOPY.