PowerShell:传递的参数不在格式字符串中

时间:2018-05-30 13:28:01

标签: powershell

我是PowerShell的新手,而且我已经陷入了非常简单的困境。我正在尝试使用字符串格式({0}{1}...)创建一个使用占位符(-f)的变量。占位符变量作为参数传递给构建/格式化字符串的函数。不幸的是,占位符仍然是空白。

这是我的代码:

function SendName(){
  BuildReport $MyInvocation.MyCommand, 1, 2
}

Function BuildReport($functionName, $param1, $param2){    
    $report="You are in {0}. Parameter expected is {1}. Actual parameter is {2}" -f $functionName, $param1, $param2
    write-host $report
}

SendName

我得到的输出是:

  

您在System.Object []中。预期的参数是。实际参数是

1 个答案:

答案 0 :(得分:2)

您必须省略调用,方法的逗号(BuildReport):

BuildReport $MyInvocation.MyCommand 1 2

否则,您将传递数组作为第一个参数,而$param1$param2将不会被填充。

输出将是:

You are in SendName. Parameter expected is 1. Actual parameter is 
2