Предполагая, что имена файлов находятся в файле, по одному в каждой строке, без расширения, этот код может сделать это.Если вы уверены, что правильные файлы будут перемещены, удалите -WhatIf
из командлета Move-Item
.
$names = Get-Content -Path '.\filelist.txt'
Get-ChildItem -File -Path 'C:\the\directory' |
ForEach-Item {
if ($names -contains $_.Name) {
Move-Item -Path $_.FullName -Destination 'C:\the\other\directory' -WhatIf
}
}