我想知道如何将PowerShell函数参数附加到程序命令?
我想要这样的东西:
function every_loop(array, test) {
for (let index = 0; index <= array.length - 1; index++) {
let x = test(array[index]);
if (!x) {
console.log(array[index]);
return false;
}
}
return true;
}
console.log(every_loop([1, 2, 3, 4, 5], n => n >= 1));
因此,单独调用function foo($x, $y, $z) {
docker run $x $y $z
}
等同于PS>foo
,等同于PS>docker run
等同于PS>foo a b c
。
这似乎是一个必须在此处某处回答的问题,但我找不到它。我不确定我是否只是措辞不佳。如果这样的话,请提前道歉。
谢谢!
答案 0 :(得分:1)
从$PSBoundParameters.Values
中获取参数值:
function foo($x, $y, $z) {
docker run $PSBoundParameters.Value
}
正如评论中指出的那样,$PSBoundParameters
不保证插入顺序,另一种方法是采用设置了ValueFromRemainingArguments
参数标志的数组的单个参数:
function foo {
param(
[Parameter(Mandatory=$false,ValueFromRemainingArgumemnts)]
[string[]]$dockerArgs
)
$dockerArgs = @('run';$dockerArgs)
& docker $dockerArgs
}