我正在用 C# 编写一个 PowerShell cmdlet,我需要在脚本中添加一些诊断日志记录,以便我可以通过 TeamCity 评估行为。在为函数启用标志的情况下尝试了 WriteVerbose -Verbose
,没有任何内容记录到 TeamCity。
cmdlet的Write-Host等价物是什么?
以下 cmdlet 之间有什么区别:
- 写命令详细信息
- 写进度
- 写详细
- 写调试
- 写警告
- 写错误
- 写对象
我正在用 C# 编写一个 PowerShell cmdlet,我需要在脚本中添加一些诊断日志记录,以便我可以通过 TeamCity 评估行为。在为函数启用标志的情况下尝试了 WriteVerbose -Verbose
,没有任何内容记录到 TeamCity。
cmdlet的Write-Host等价物是什么?
以下 cmdlet 之间有什么区别:
万一其他人遇到这个问题,这就是我学到的: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 现在重定向到信息流。