あるフォルダーから別のフォルダーに新しいファイルのみをコピーし、5 分以内に追加されたファイルのみをコピーするにはどうすればよいでしょうか?

あるフォルダーから別のフォルダーに新しいファイルのみをコピーし、5 分以内に追加されたファイルのみをコピーするにはどうすればよいでしょうか?

あるドライブから別のドライブにファイルをコピーしたいのですが、コピー先のファイルよりも新しいソース ファイルのみをコピーしたいです。ただし、過去 5 分以内に変更されたソース ファイルのみをコピーしたいです。

.bat 拡張子を持つファイルを 1 つ作成し、次のコマンドを使用しました:

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

関連情報