#powershell
#powershell
Вопрос:
Я хочу скопировать все файлы, доступные на моем исходном сервере TFS, в папку в каталоге. Я попробовал приведенный ниже код, но при достижении того же результата возникает ошибка. Можете ли вы предложить решение?
PS> C:WindowsSystem32> Get-TfsItemProperty $/MyFirstTFSProj -r `
-server xyzc011b| Where {$_.CheckinDate -gt (Get-Date).AddDays(-150)} |
Copy-Item D:johnapplication1 -Destination C:Test -whatif
Copy-Item : The input object cannot be bound to any parameters for the command
either because the command does not take pipeline input or the input and its pr
operties do not match any of the parameters that take pipeline input.
At line:2 char:14
Copy-Item <<<< D:DeepuSilverlightApplication5 -Destination C:Test -w
hatif
Ответ №1:
Я бы просто создал сопоставление workspace / workfolder и использовал tf.exe инструмент для получения файлов на интересующую вас дату, например:
PS> cd <root_of_workfolder_on_local_harddrive>
PS> tf get . /r "/v:D$((Get-Date).AddDays(-150))"
Если это не конечный пункт назначения, то просто скопируйте содержимое каталога в пункт назначения. Если вам больше не нужна рабочая область, удалите ее.
Кстати, я довольно часто использую командлет PowerTool, но нахожу его в первую очередь полезным для запросов. Например, AFAICT, не существует эквивалента «tf get», который вам нужен для удаления файлов с сервера. IOW, вы не можете использовать copy-item для копирования файлов с TF-сервера. Вы должны использовать команду tf для извлечения файла с сервера.
Ответ №2:
ПОЛУЧЕН ОТВЕТ НА МОЙ ВОПРОС
Я публикую окончательный ответ.С помощью этого скрипта мы можем скопировать все файлы с сервера TFS и скопировать все зарегистрированные файлы с определенной даты на локальный жесткий диск, сохраняя при этом иерархию. Наслаждайтесь ..!!
Get-TfsChildItem $/MyFirstSpectaProj -r -server xyz10co553 |
? { $_.CheckinDate -gt (Get-Date).AddDays(-01) } |
% { $_.DownloadFile(@(join-path C:testxyz $_.ServerItem)) }