代码之家  ›  专栏  ›  技术社区  ›  JimDaniel

PowerShell阵列只是.NET阵列吗?

  •  5
  • JimDaniel  · 技术社区  · 16 年前

    我正在创建一个字符串对象数组 PowerShell 需要传递到 Xceed zip库方法,该方法需要字符串[],但每次都会出错。这让我怀疑PowerShell阵列是否不是.NET阵列。下面是一些代码:

    $string_list = @()
    foreach($f in $file_list)
    {
        $string_list += $f.FullName
    }
    [Xceed.Zip.QuickZip]::Zip("C:\new.zip", $true, $false, $false, $string_list)
    

    [Xceed.Zip.QuickZip]::Zip("C:\new.zip", $true, $false, $false, "test.txt", "test2.txt", "test3.txt")
    

    有人能帮我弄清楚吗?我不明白会有什么不同。。。

    编辑:我已经测试并确认我的$string\u列表数组由System.string对象组成

    1 回复  |  直到 15 年前
        1
  •  16
  •   Keith Hill    16 年前

    当您指定:

    $string_list = @()
    

    您没有为PowerShell提供任何类型信息,因此它会创建System.Object数组,该数组可以容纳任何对象:

    PS> ,$string_list | Get-Member
    
       TypeName: System.Object[]
    

    PS> [string[]]$string_list = @()
    PS> ,$string_list | Get-Member
    
    
       TypeName: System.String[]
    
    推荐文章