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

    [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

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

0
Freshman 9 Окт 2019 в 20:57

1 ответ

Лучший ответ

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

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. Если вы не хотите, чтобы он удалил $ ложные значения, вам придется изменять его.

1
Nathan W 9 Окт 2019 в 19:56