Команда PowerShell выводит данные при использовании в приглашении, но не при использовании в сценарии (Update-TfsWorkspace)

Я работаю с PSSnapin Teamfoundation.PowerShell, в частности с командлетом Update-TfsWorkspace.

Я пытаюсь создать сценарий и автоматизировать процесс, связанный с получением последнего содержимого из TFS. Когда я использую команду:

Update-TfsWorkspace -force -item $somepath -recurse -overwrite

в приглашении PowerShell я получаю следующий результат:

Replacing   468256 C:\Path\MorePath\SomeFile1.txt
Replacing   468256 C:\Path\MorePath\SomeFile2.txt
Replacing   510850 C:\Path\MorePath\SomeFile3.txt
Replacing   468256 C:\Path\MorePath\SomeFile4.txt
Replacing   468256 C:\Path\MorePath\SomeFile5.txt
Replacing   510850 C:\Path\MorePath\SomeFile6.txt
Replacing   468256 C:\Path\MorePath\SomeFile7.txt

Это то, что я хочу и ожидаю увидеть. Однако, когда я выполняю ту же команду в сценарии, а не непосредственно в приглашении, я просто получаю пробелы вместо вывода. Команда выполняется успешно, ясно, что она сработала, но я не получаю результата. См. Следующую ссылку: Изображение пустого вывода

То же самое происходит при использовании Start-Transcript для записи процесса в файл. Я получаю вывод, но вывод - это просто пробелы. См. здесь

Мне нужен вывод этой команды для журнала, и упорный отказ скрипта сгенерировать его, похоже, выходит за рамки моей компетенции. Кто-нибудь знает, почему это происходит?


person Anomalyzero    schedule 29.07.2016    source источник


Ответы (1)


Обратите внимание: поскольку я его не использую, похоже, что этот CmdLet не записывает на OutPut, а только на хост (см .: Общие сведения о потоках, перенаправлении и хосте записи в PowerShell)

Уловка заключается в том, чтобы поместить ваш код в вызов MyTFSScript.PS1 ansd:

powershell.exe -noprofile -file MyTFSScript.PS1 > MyTFSScript.log
person JPBlanc    schedule 30.07.2016