Powershell: Éclabousser une propriété

Créé le 25 oct. 2017  ·  3Commentaires  ·  Source: PowerShell/PowerShell

Sommaire

Il serait utile que nous puissions utiliser la propriété d'une variable (c'est-à-dire où cette propriété est elle-même une table de hachage) dans une commande.

Exemple de code :

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)

Cela peut être particulièrement utile lorsque vous traitez des fichiers de configuration. Par exemple, notre configuration contient des informations sur la base de données (instance, catalogue, informations d'identification), ainsi que des sections avec d'autres propriétés spécifiques à nos fonctions. par exemple

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

Commentaire le plus utile

On dirait que nous devons relancer https://github.com/PowerShell/PowerShell-RFC/issues/6 - le projet de RFC suggère des éclaboussures d'expression généralisées, avec une syntaxe comme :

Test-Demo @$test.testString

Tous les 3 commentaires

On dirait que nous devons relancer https://github.com/PowerShell/PowerShell-RFC/issues/6 - le projet de RFC suggère des éclaboussures d'expression généralisées, avec une syntaxe comme :

Test-Demo @$test.testString

@JohnLBevan Pouvons-nous fermer le problème en regardant https://github.com/PowerShell/PowerShell-RFC/issues/6 ?

@iSazonov ; oui, heureux que cela soit fermé étant donné que c'est déjà couvert là-bas. Merci.

Cette page vous a été utile?
0 / 5 - 0 notes