Поскольку вы копируете файлы один за другим, я не вижу здесь реального преимущества использования robocopy, а есть собственный Copy-Item
командлет PowerShell пользователя.
Поскольку вы не сказали, что такое $ID
из текстового файла может быть, из кода, который вы дали, я понимаю, что это некоторая строка, которая должна быть частью имени файла для копирования.
Это должно работать для вас тогда
$Source = 'F:\Temp'
$Destination = 'F:\Output'
$Daily_Results = Join-Path -Path 'F:\Output\Test' -ChildPath ('{0:yyyy-MM-dd}_CopyMove_Results.txt' -f (Get-Date))
foreach ($ID in Get-Content F:\Files\files.txt) {
Get-ChildItem -Path $Source -File -Recurse | Where-Object { $_.Name -like "*$ID*" } | ForEach-Object {
$_ | Copy-Item -Destination $Destination -Force
Write-Host "File '$($_.Name)' copied"
# output to the log file
"$ID File copied: '$($_.Name)'" | Out-File -FilePath $Daily_Results -Append
}
}