变量作为参数名称

时间:2017-03-31 12:04:06

标签: powershell

是否可以使用变量的值作为参数的名称,类似于此(但不完全是这样,因为它不起作用):

$processData = Split-Path $processData -($variable.split)

$variable实际上是一些XML,而split属性可以是父母'或者' leaf'。我可以使用这种方法,它工作正常:

switch ($variable.split) {
    parent {
        $processData = Split-Path $processData -Parent
    }
    leaf {
        $processData = Split-Path $processData -Leaf
    }
}

但直接使用变量会更优雅。

1 个答案:

答案 0 :(得分:2)

Splatting应该做你想做的事:

$params = @{
    Path = $processData
    $variable.split = $true
}
$processData = Split-Path @params

但代码并不比switch语句少得多:

$processData = switch ($variable.split) {
    parent { Split-Path $processData -Parent }
    leaf   { Split-Path $processData -Leaf }
}