Исключение пустых строк из вывода объектов PowerShell - PullRequest
0 голосов
/ 09 октября 2019

Это способ удалить строки, которые не содержат значений-данных? Например, для этого сценария поле значения «Отдел» пустое, я бы хотел его обрезать.

    [System.Object]$ADOutputSelectedValues = [ordered] @{

    'FirstName'  = $ADReturnObject.FirstName
    'LastName'   = $ADReturnObject.LastName
    'Location'   = $ADReturnObject.Location
    'Department' = $ADReturnObject.Department
    'Epost'      = $ADReturnObject.Epost
    'Id'         = $ADReturnObject.Id

}

$Output = New-Object -TypeName psobject -Property $ADOutputSelectedValues

$Output

Редактировать: Текущий вывод:

FirstName  : Donald
LastName   : Duck
Location   : Dugburg
Department : 
Epost      : Donald@Duck.com
Id         : 313

Хотелось бы, чтобы это выглядело так:

FirstName  : Donald
LastName   : Duck
Location   : Dugburg
Epost      : Donald@Duck.com
Id         : 313

Заранее спасибо.

1 Ответ

1 голос
/ 09 октября 2019

В своем собственном кодировании я создал функцию, которая помогает в таких случаях:

Function Remove-EmptyValuesFromHashtable
{
    Param( [Parameter(Mandatory=$True)] [Hashtable] $Hashtable )

    $NewHashtable = @{}

    foreach ($Key in $Hashtable.Keys)
    {
        if ($Hashtable.$Key -as [Bool])
        {
            $NewHashtable += @{ $Key=$Hashtable.$Key }
        }
    }

    return $NewHashtable
}

Обратите внимание, что «пустые значения» включают в себя $ Null, пустую строку, $ False. Если вы не хотите, чтобы он удалял значения $ False, вам придется изменить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...