我是PowerShell脚本的新手,正在试用Function
。这是我写的代码:
Function Add
{
$sum = 0;
for($i = 0; $i -le $args.length; ++$i)
{
[int] $num = $args[$i]
$sum += $num
}
Write-Output "Sum is $sum"
}
我试着用Add 1,2,3
调用,但是,当我执行时,我得到了以下错误:
无法将类型“System.Object []”的“System.Object []”值转换为类型“System.Int32”。
有办法解决吗?
2条答案
按热度按时间gwo2fgha1#
Powershell中有一个bg陷阱:
,
是数组运算符。请在命令行尝试执行以下操作:你会看到它是一个数组:
尝试调用不带逗号的
Add
:别忘了在Powershell中所有东西都是对象,你是在. NET上玩游戏。
你有两个朋友
gettype()
方法,用于提供对象的类型Get-Member
CmdLet可帮助您处理对象的属性和方法Get-member
有许多参数可以提供帮助。vfwfrxfs2#
通常执行铸造,在右侧指定类型:
这是你的问题吗
第二点意见:
正如@JPBlanc所观察到的,您传递给函数的是一个数组,而不是三个参数。
你会得到它的。不管怎样,在这种情况下你不需要选角。可能是这样的:
显然,您可以继续像
Add 1,2,3
那样调用函数,但需要按如下方式进行更改: