Resumo
Seria útil se pudéssemos splat usando a propriedade de uma variável (ou seja, onde essa propriedade é ela própria uma tabela de hash) para um comando.
Exemplo de código:
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)
Isso pode ser particularmente útil ao lidar com arquivos de configuração. por exemplo, Nossa configuração contém informações de banco de dados (instância, catálogo, credenciais) e também seções com outras propriedades específicas para nossas funções. por exemplo
$config = Get-MyScriptConfig -Path '.\Config.xml'
Invoke-Something @config.DatabaseConnectionInfo @config.Something
Parece que precisamos reviver https://github.com/PowerShell/PowerShell-RFC/issues/6 - o rascunho RFC sugere splatting generalizado de expressão, com sintaxe como:
Test-Demo @$test.testString
@JohnLBevan Podemos encerrar o problema procurando https://github.com/PowerShell/PowerShell-RFC/issues/6 ?
@iSazonov ; sim, feliz por isso estar fechado dado que já está coberto lá. Obrigado.
Comentários muito úteis
Parece que precisamos reviver https://github.com/PowerShell/PowerShell-RFC/issues/6 - o rascunho RFC sugere splatting generalizado de expressão, com sintaxe como: