为什么我的参数没有传递到函数中?

时间:2019-09-15 16:01:38

标签: function powershell parameter-passing

创建功能时,我在家用笔记本电脑上遇到奇怪的行为。参数不会传递到函数中。

示例:

Mongo 3.6+

使用以下代码(function Get-Info { param ( $input ) $input | gm } ),我收到以下错误消息:

Get-Info -input 'test'

我也只是尝试打印带有参数的详细语句,但是我只得到一个空行。

为什么参数未传递到函数中?

2 个答案:

答案 0 :(得分:6)

@JosefZ的评论是正确的。 $ input基本上是about_Automatic_Variables中所述的保留变量名。

  

包含一个枚举器,该枚举器枚举传递给函数的所有输入。 $ input变量仅适用于函数和脚本块(未命名的函数)。

因此,更改参数名称应该可以按预期进行。但是不要忘记也要更改函数的调用方式,以便它也使用新的参数名称。在这种情况下,您也可以在调用函数时完全跳过参数名称

function Get-Info { param($myinput) $myinput | gm }
Get-Info -myinput 'test'
Get-Info 'test'

答案 1 :(得分:-1)

尝试这种方式。 这个 [字串] | gm