Powershell: Splating einer Immobilie

Erstellt am 25. Okt. 2017  ·  3Kommentare  ·  Quelle: PowerShell/PowerShell

Zusammenfassung

Es wäre hilfreich, wenn wir die Eigenschaft einer Variablen (dh wenn diese Eigenschaft selbst eine Hash-Tabelle ist) auf einen Befehl übertragen könnten.

Code-Beispiel:

function Test-Demo {
    [CmdletBinding()]
    Param (
        [Parameter()]
        [string]$One
        ,
        [Parameter()]
        [string]$Two
    )
    "1 = $One"
    "2 = $Two"
}
$test = @{
    testInt = @{ 
        One = '1'
        Two = '2'
    }
    testString = @{
        One = 'One'
        Two = 'Two'
    }
}

#to splat a property, we first need to assign the property to a "top level" variable:
$t = $test.testString
Test-Demo <strong i="10">@t</strong> 

#however it would be nice if we could instead do this:
Test-Demo @test.testString 

#or if that's not possible for some reason, maybe something like this:
Test-Demo ([splat]$test.testString)

Dies kann besonders nützlich sein, wenn Sie mit Konfigurationsdateien arbeiten. zB Unsere Konfiguration enthält Datenbankinformationen (Instanz, Katalog, Anmeldeinformationen) und auch Abschnitte mit anderen Eigenschaften, die für unsere Funktionen spezifisch sind. z.B

$config = Get-MyScriptConfig -Path '.\Config.xml'
Invoke-Something @config.DatabaseConnectionInfo @config.Something
Issue-Question Resolution-Answered

Hilfreichster Kommentar

Klingt so, als müssten wir https://github.com/PowerShell/PowerShell-RFC/issues/6 wiederbeleben - der RFC-Entwurf schlägt verallgemeinertes Ausdrucks-Splatting vor, mit Syntax wie:

Test-Demo @$test.testString

Alle 3 Kommentare

Klingt so, als müssten wir https://github.com/PowerShell/PowerShell-RFC/issues/6 wiederbeleben - der RFC-Entwurf schlägt verallgemeinertes Ausdrucks-Splatting vor, mit Syntax wie:

Test-Demo @$test.testString

@iSazonov ; ja, froh, dass dies geschlossen wird, da es dort bereits behandelt wird. Dankeschön.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen