2016-10-13 11 views
0

У меня есть скрипт, который находит несколько файлов и копирует их. Это часть скрипта сборки psake.Copy-Item не работает

Команда:

Get-ChildItem -Path "$sourceFolder" -Include "*.ispac" -Recurse ` 
    | Select-Object -ExpandProperty FullName ` 
    | Copy-Item -Destination "$caseFolder\" -Force -Verbose 

Когда я выполняю это, я получаю это за сообщение:

VERBOSE: Performing the operation "Copy File" on target 
"Item: C:\Source\TestSssisOne.ispac 
Destination: C:\Destination\TestSssisOne.ispac". 

Это конечно выглядит как файлы, где копируются. Но это не так. Нет ошибок. Если я скопирую эту команду в ISE и настрою переменные, она не создаст проблем. Я попытался просто вручную скопировать один файл с явными путями. Опять же, в скрипте он не копируется, а в консоли PS или ISE.

Я понятия не имею, в чем проблема. Я использовал Copy-Item в сценариях psake. Фактически, я скопировал вышеуказанный код на более позднюю задачу, и он работает! В задаче, где она не работает, я вызываю msbuild для построения решения.

Любое понимание оценено!

+0

первых вещей, которые приходят на ум: Права доступа. Маскировка или удаление сообщений об ошибках. Удаление файлов в другом месте после копирования ... Из того, что вы опубликовали, это все, о чем я мог думать. Если у вас есть полный доступ к серверу, выполняющему сценарий, мои первые действия состоят в том, чтобы получить трассировку procmon и искать ошибки. Если это не решит его, установите PSDebug в скрипте и попытайтесь сузить его. –

ответ

1

изменить ваш код этого

Get-ChildItem -Path "$sourceFolder" -Include "*.ispac" -Recurse -File | foreach{Copy-Item $_.FullName -Destination (("$caseFolder\") + $_.Name) -Force -Verbose } 
+0

Это работает! Любые идеи, почему это работает, когда обычный экземпляр не работает? –