soa*_*dos 10 powershell powershell-ise powershell-2.0
我觉得我做的事情很傻,但问题在于:
Function getPropertyOfFile($a, $b, $c)
{
$a.GetDetailsOf($b, $c)
}
Run Code Online (Sandbox Code Playgroud)
如果我传递适合该函数的$ a,$ b,$ c变量,它就会失败
"方法调用失败,因为[System.Object []]不包含名为'GetDetailsOf'的方法."
但是,如果我直接用我传递的参数替换$ a,$ b,$ c,然后尝试运行它,它运行正常.
到底他妈发生了什么?
注意:我正在使用PowerShell ISE,并通过将其复制/粘贴到控制台中来将函数输入到powershell.我也一直在假设如果我输入一个具有相同名称的新函数,它将覆盖.是否有更好的方法来从.ps1中读取PS?
编辑:我试图将这个问题的答案包装成函数.
编辑2:
Function getPropertyOfFile $a $b $c
{
$a.GetDetailsOf($b, $c)
}
Run Code Online (Sandbox Code Playgroud)
给出Missing function body in function declaration.
At line:1 char:28错误.
Joe*_*oey 16
PowerShell中的函数与cmdlet类似,因此您无需使用逗号分隔参数.
您的调用可能如下所示:
getPropertyOfFile($foo, $bar, $baz)
Run Code Online (Sandbox Code Playgroud)
这导致$a具有值$foo, $bar, $baz(数组)while $b和$care $null.
你需要像这样调用它:
getPropertyOfFile $foo $bar $baz
Run Code Online (Sandbox Code Playgroud)
如上所述,它与您调用cmdlet的方式相同.你甚至可以这样做
getPropertyOfFile -a $foo -c $baz -b $bar
Run Code Online (Sandbox Code Playgroud)
此时你可能会注意到你的函数参数命名不是很好;-)
编辑:如前所述,您的功能声明正常.问题在于您没有发布的代码,但对于具有PowerShell体验的人来说很容易推理.即,调用您的函数.
| 归档时间: |
|
| 查看次数: |
24090 次 |
| 最近记录: |