В общем - все уже озвучили...
Если Вы хотите определять новизну файла именно по хэшу - тут сложно что-то добавить к ответу
MaxKozlov.
В зависимости от количества и размеров файлов вычисление хэшей может занять определенное время, поэтому можно сравнивать, как советовал
rPman, имя, размер и дату последнего изменения файлов (по аналогии с хэшем):
$oldfile = Get-ChildItem -Path $OldPath -File -Recurse | Select Name,Length,LastWriteTime
$newfile = Get-ChildItem -Path $NewPath -File -Recurse | Select Name,Length,LastWriteTime
Compare-Object $oldfile $newfile -Property Name,Length,LastWriteTime -PassThru -IncludeEqual |
Where-Object { $_.SideIndicator -eq '<=' } |
Foreach-Object { Copy-Item $_.Path -Destination $Destination }
Ну и третий вариант - это использовать стандартные инструменты типа robocopy или xcopy