小编典典

如何将多个参数传递给 PowerShell 中的函数?

all

如果我有一个接受多个字符串参数的函数,则第一个参数似乎获取分配给它的所有数据,其余参数作为空传递。

快速测试脚本:

Function Test([string]$arg1, [string]$arg2)
{
    Write-Host "`$arg1 value: $arg1"
    Write-Host "`$arg2 value: $arg2"
}

Test("ABC", "DEF")

生成的输出是

$arg1 value: ABC DEF
$arg2 value:

正确的输出应该是:

$arg1 value: ABC
$arg2 value: DEF

这似乎在多台机器上的 v1 和 v2 之间是一致的,所以很明显,我做错了什么。谁能指出具体是什么?


阅读 97

收藏
2022-03-13

共1个答案

小编典典

PowerShell(所有版本)中对函数的调用中的参数以 空格分隔,而不是逗号分隔 。此外,括号是完全不必要的,如果或更高版本处于活动状态,则会在
PowerShell 2.0(或更高版本)中导致解析错误。带括号的参数仅用于 .NET 方法。Set- StrictMode -Version 2

function foo($a, $b, $c) {
   "a: $a; b: $b; c: $c"
}

ps> foo 1 2 3
a: 1; b: 2; c: 3
2022-03-13