gpt4 book ai didi

powershell - PowerShell 函数中的类型转换问题

转载 作者:行者123 更新时间:2023-12-02 22:09:52 25 4
gpt4 key购买 nike

我对 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 打电话.但是,当我执行时,出现以下错误:

Cannot convert the "System.Object[]" value of type "System.Object[]" to type "System.Int32".



知道如何解决这个问题吗?

最佳答案

Powershell 中的 Big TRAP ","是数组运算符
只需在命令行中尝试:

PS> 1,2,3

你会看到数组
PS> (1,2,3).gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

所以尝试调用:
PS> Add 1 2 3
Sum is 6

并且不要忘记你在 .NET 上玩的 Powershell 中的一切都是 OBJECT

所以你有两个 friend :
  • gettype()为您提供对象类型的方法
  • Get-Member CmdLet 可帮助您了解对象的属性和方法

  • Get-member 有许多可以提供帮助的参数。

    关于powershell - PowerShell 函数中的类型转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6006819/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com