Я работаю с каталогом со структурой как: имя учетной записи → year →.Как скопировать только самый последний файл из каждой папки и вложенной папки при сохранении структуры каталогов?
В каждой группе файлов по году и имени обычно есть один или несколько файлов, содержащих "*Data Rec*"
в имени файла. Я хотел бы только взять последний файл с этим именем для каждой группы файлов. Прямо сейчас у меня есть приведенный ниже код, который работает, но возвращает только один файл, хотя есть папка для 2012, 2013 и 2014, каждая из которых содержит хотя бы один файл "*Data Rec*"
. Также он не сохраняет структуру каталогов. Он удаляет только файл в пункт назначения. Файл находится из папки 2014, поэтому я хочу, чтобы мой пункт назначения содержал папку 2014 с файлом "*Data Rec*"
внутри.
Get-ChildItem -Path $path -Recurse -Filter "*Data Rec*" |
Sort-Object LastAccessTime -Descending |
Select-Object -First 1 |
% { Copy-Item -Path $_.FullName -Destination $destination }
В конце концов, я хотел бы также иметь возможность поиска самого последнего "*Analysis*"
файла, если выбранная папка не содержит "*Data Rec*"
файл.
Лично я хотел бы использовать PS, чтобы получить желаемый исходный путь и путь назначения, а затем выполнить RoboCopy или что-то, чтобы выполнить фактическую копию файла, так как это будет только перезаписать файлы, когда они обновляются, и он будет поддерживать каталог структуры и всего этого. – TheMadTechnician
@ TheMadTechnician Есть ли способ интегрировать параметры Get-ChildItem с robocopy? Я не могу найти способ использовать robocopy для получения только самого последнего файла из каждой папки с помощью этого критерия фильтра. – Cole
Crud, я сказал RoboCopy? Я имею в виду [RichCopy] (https://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx). Несколько лет назад проект любителя от сотрудника Microsoft, который копирует файлы. Это похоже на RoboCopy, но более потрясающее. – TheMadTechnician