Π Π΅Π·ΡΠΌΠ΅
ΠΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΡΠΎ Π΅ΡΡΡ, Π³Π΄Π΅ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΌΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ) Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
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)
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
$config = Get-MyScriptConfig -Path '.\Config.xml'
Invoke-Something @config.DatabaseConnectionInfo @config.Something
ΠΠΎΡ ΠΎΠΆΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·ΡΠΎΠ΄ΠΈΡΡ https://github.com/PowerShell/PowerShell-RFC/issues/6 - ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ RFC ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π²ΡΠΎΠ΄Π΅:
Test-Demo @$test.testString
@JohnLBevan ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π·Π°ΠΊΡΡΡΡ https://github.com/PowerShell/PowerShell-RFC/issues/6 ?
@iSazonov ; Π΄Π°, ΡΠ°Π΄, ΡΡΠΎ ΡΡΠΎ Π·Π°ΠΊΡΡΠ»ΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΡΠΆΠ΅ ΠΏΠΎΠΊΡΡΡΠΎ ΡΠ°ΠΌ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΡ ΠΎΠΆΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·ΡΠΎΠ΄ΠΈΡΡ https://github.com/PowerShell/PowerShell-RFC/issues/6 - ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ RFC ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π²ΡΠΎΠ΄Π΅: