栈,
你如何区分PSObjects是由WriteObject()WriteWarning()WriteError()创建的?
从此开始:
psCmd = PowerShell.Create();
Runspace = RunspaceFactory.CreateRunspace();
Runspace.Open();
psCmd.Runspace = Runspace;
psCmd.AddCommand(cmdletName);
Collection<PSObject> results = null;
results = psCmd.Invoke();
results
变量包含管道输入命令行的所有PSObject。如何通过命令行开关识别由WriteObject()WriteError()WriteWarning()创建的PSObject?
我想添加实现以下功能的代码:
foreach(psObj in results) {
if ( IsWarning(psObj) )
{
// Turn on yellow flashing lights
}
else if ( IsError(psObj) )
{
// Turn on red flashing lights
}
else
{
// Write to ticker-tape
}
}
答案 0 :(得分:4)
您应该能够使用Streams
对象(Powershell
)上的psCmd
属性来处理错误和其他消息,并对其进行适当处理:
if (psCmd.Streams.Error.Count > 0)
{
Console.WriteLine("{0} errors", psCmd.Streams.Error.Count);
}
同样,您可以访问警告,调试,进度和详细信息。