вы должны вызвать, как показано ниже
function weekendplans($a,$b,$c)
{
$message = "This is a $a $b and an $($c)"
$message
}
weekendplans "pear" "apple" "orange"
с тем, как вы передали, все аргументы назначены на $a
function weekendplans($a,$b,$c)
{
Write-Host "a is $a"
Write-host "b is $b"
Write-host "c is $c"
$message = "This is a $a $b and an $c"
$message
}
PS C:\> weekendplans("pear", "apple", "orange")
работает выше дает мне
a is pear apple orange
b is
c is
This is a pear apple orange and an
Правильный способ передачи параметров в оболочке питания - через пробел, разделенный запятой
, если вы не знаете, вы можете вызвать .NetClasses
в PowerShell, они называются разделенными запятыми. Ниже приведен один пример
[System.DateTime]::DaysInMonth(2020,6)
В скобках используются аргументы NET только методы
Параметры в вызовах функций в PowerShell (все версии) через пробел, а не через запятую. Кроме того, круглые скобки совершенно не нужны и вызовут ошибку синтаксического анализа в PowerShell 2.0 (или более поздней версии), если Set-StrictMode активен. Аргументы в скобках используются только в методах. NET.
Дополнительная литература и ссылки:
Как передать несколько параметров в функцию в PowerShell?