Как скопировать только новые файлы из одной папки в другую И только те, которые были добавлены не более 5 минут назад?

Как скопировать только новые файлы из одной папки в другую И только те, которые были добавлены не более 5 минут назад?

Я хотел бы скопировать файлы с одного диска на другой, но я хочу скопировать только исходные файлы, которые новее конечного файла. НО я также хочу скопировать только исходные файлы, которые были изменены за последние 5 минут.

Я создал один файл с расширением .bat и использовал эту команду:

xcopy "C:\Users\Pictures\Newfolder"  "C:\Users\Pictures\Newfolder2\" /d:03/29/2019

Но эта команда предназначена для даты.

решение1

Этот скрипт PowerShell:

(Get-ChildItem 'C:\Users\Pictures\Newfolder' |
    Where {!($_.PSIsContainer) -and
           ($_.LastWriteTime -gt [datetime]::now.AddMinutes(-5)) -and 
           (!(Test-Path (Join-Path 'C:\Users\Pictures\Newfolder2' $_.Name)))}).FullName"

упакованный в пакетный файл:

:: Q:\Test\2019\03\29\SU_1419009.cmd
@Echo off
Set "Src=C:\Users\Pictures\Newfolder"  
Set "Dst=C:\Users\Pictures\Newfolder2"

For /f "usebackq delims=" %%A in (`
    powershell -NoP -C "(Get-ChildItem '%Src%'|Where {!($_.PSIsContainer) -and ($_.LastWriteTime -gt [datetime]::now.AddMinutes(-5)) -and (!(Test-Path (Join-Path '%Dst%' $_.Name)))}).FullName"
`) Do (
echo Copy "%%A" "%Dst%\"
     Copy "%%A" "%Dst%\"
)

В таком виде будут скопированы только файлы, созданные/измененные за последние 5 минут. Если я ошибаюсь,
и вы имеете в виду файлы старше 5 минут, измените расширение -gtна -lt.

Связанный контент