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
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
@JohnLBevan Können wir das https://github.com/PowerShell/PowerShell-RFC/issues/6 schließen ?
@iSazonov ; ja, froh, dass dies geschlossen wird, da es dort bereits behandelt wird. Dankeschön.
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: