1
我想要做的东西沿着这些路线胁迫数组字符串:PowerShell的当试图调用C#可变参数的函数
$prefix = "C:\Users"
function prefix-path([string[]] $paths) {
Write-Output ([System.IO.Path]::Combine(@($prefix) + $paths))
}
prefix-path(1, 2, 3, 4)
我想收到C:\Users\1\2\3\4
但我得到的是这样的:C:\Users 1 2 3 4
。引用1
,2
等没有帮助。
我假设PowerShell出于某种原因假设我想将数组转换为字符串,然后继续调用Combine(String)
版本,但我希望它显然调用Combine(params String[])
。
当我包装Combine它的作品。
function wrapped-combine([string[]] $path) {
Write-Output ([System.IO.Path]::Combine($path))
}
为什么会发生这种情况,我该如何正确编写prefix-path
?