Как получить подробный вывод CmdLet Powershell, когда CmdLet программно Вызывается от C#

C броски Стиля легки отсутствовать в блоке кода. Броски стиля C++ не являются только лучшей практикой; они предлагают намного большую степень гибкости.

reinterpret_cast позволяет интеграл преобразованиям типа указателя, однако может быть небезопасным, если неправильно используется.

static_cast предлагает хорошее преобразование для числовых типов, например, от как перечисления к ints или ints к плаваниям или любым типам данных, Вы уверены в типе. Это не выполняет проверок времени выполнения.

dynamic_cast, с другой стороны, выполнит эти проверки, отмечающие любые неоднозначные присвоения или преобразования. Это только работает над указателями и ссылками и подвергается издержкам.

существует несколько других, но это основные, с которыми Вы столкнетесь.

9
задан Qantas 94 Heavy 19 February 2015 в 03:15
поделиться

1 ответ

  • Подробный вывод фактически не выводится, если для параметра $ VerbosePreference установлено по крайней мере значение «Продолжить».
  • Используйте тип PowerShell для запуска командлета и прочтите экземпляры VerboseRecord из свойства Streams.Verbose

Пример в сценарии PowerShell:

ps> $ps = [powershell]::create()
ps> $ps.Commands.AddScript("`$verbosepreference='continue'; write-verbose 42")
ps> $ps.invoke()
ps> $ps.streams.verbose
Message   InvocationInfo                          PipelineIterationInfo
-------   --------------                          ---------------------
42        System.Management.Automation.Invocat... {0, 0}

Это должно быть легко перевести на C #.

10
ответ дан 4 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: