2016-10-13 6 views
0

Я запускаю следующий сценарий в скрипте powershell и получаю ошибку.Ошибка сценария Powershell при выводе Array inside if statement

$queues = Get-WmiObject Win32_PerfFormattedData_msmq_MSMQQueue 

$ list = $ queues | FT -property Имя, MessagesInQueue

для ($ I = 0; $ я -lt 6; $ я ++) {

, если ($ я -gt 2) {

$list[$i] 

} 

}

Ошибка: из-lineoutput: объект типа «Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData» не действует или не в правильной последовательности. Вероятно, это вызвано заданной пользователем командой «format- *» , которая противоречит форматированию по умолчанию. + CategoryInfo: InvalidData: (:) [вне lineoutput], InvalidOperationException + FullyQualifiedErrorId: ConsoleLineOutputOutOfSequencePacket, Microsoft.PowerShell.Commands.OutLineOutputCommand

ответ

0

Похоже, что вы просто пытаетесь пропустить заголовки для ваших данных при отображении с Format-Table (или FT для краткости, как вы использовали). Для этого просто используйте переключатель -HideTableHeaders в своей команде FT и не записывайте его в переменную.

$queues = Get-WmiObject Win32_PerfFormattedData_msmq_MSMQQueue 
$queues | ft -property Name,MessagesInQueue -HideTableHeaders 

В этом отношении, следует использовать только Format-Table или любой из команд Format- для отображения текста, а не хранить в переменной. Если вы хотите только первые 4 записи вы бы труба в команде Select до проведения FT как:

$queues = Get-WmiObject Win32_PerfFormattedData_msmq_MSMQQueue 
$queues | Select -First 4 | ft -property Name,MessagesInQueue -HideTableHeaders 
+0

спасибо человеку. Оно работало завораживающе. -HideTableHeaders Bingo !!! – xs2rashid