2

我正在用 C# 编写一个 PowerShell cmdlet,我需要在脚本中添加一些诊断日志记录,以便我可以通过 TeamCity 评估行为。在为函数启用标志的情况下尝试了 WriteVerbose -Verbose,没有任何内容记录到 TeamCity。

cmdlet的Write-Host等价物是什么?

以下 cmdlet 之间有什么区别:

  • 写命令详细信息
  • 写进度
  • 写详细
  • 写调试
  • 写警告
  • 写错误
  • 写对象
4

1 回答 1

1

万一其他人遇到这个问题,这就是我学到的:PowerShell 支持许多不同的输出流。

然而,TeamCity 所追求的不是上述任何一种,[C#] Console.WriteLine 足以记录到 TeamCity 跟踪日志。

回答我之前的问题:

WriteError 用于正确返回异常(这很好用,虽然有点复杂,调试 cmdlet 时仅使用 C# throw 会使 PowerShell 崩溃)。

WriteObject 用于将自定义或现有 C# 对象从 cmdlet 返回到变量赋值(例如 [PowerShell] $x = Do-Something,其中 [C#] WriteObject(Output) 将返回到 [PowerShell] $x)。

WriteInformation(PowerShell 5 中的新功能)是写入输出流的新方法,Write-Output 现在重定向到信息流。

于 2018-07-10T12:45:16.977 回答