【发布时间】:2016-10-31 03:00:27
【问题描述】:
我有一个返回哈希表的命令。比如这个:
function Get-TestArgs() { return @{a=1;b=2;c=3} }
我想用它的返回值作为我其他函数的参数:
function Test($a, $b, $c) {
Write-Host 'A' $a
Write-Host 'B' $b
Write-Host 'C' $c
}
这可以通过 PowerShell 的 splatting 功能实现:
$testargs = @{a=1;b=2;c=3}
Test @testargs
问题是我不想将哈希分配给中间变量。
我的想法是这样的:
Test (some splat syntax)(Get-TestArgs)
显然,这是行不通的,因为它只是创建一个包含哈希的数组并传递它:
Test @(Get-TestArgs)
有没有办法做到这一点?
我关心的原因
我正在编写将手动执行的指令。这些指令将调用脚本,但在调用之间仍然需要进行一些手动干预。所以我想尽量减少命令以减少出现问题的风险,比如其他命令遗留的变量或拼写错误。
【问题讨论】:
标签: powershell parameter-passing