gpt4 book ai didi

.net - PowerShell 数组只是 .NET 数组吗?

转载 作者:行者123 更新时间:2023-12-04 16:37:37 25 4
gpt4 key购买 nike

我在 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)

我收到的错误是“将文件添加到 zip 文件时发生错误”。如果我在这样的值中进行硬编码,它会起作用:
[Xceed.Zip.QuickZip]::Zip("C:\new.zip", $true, $false, $false, "test.txt", "test2.txt", "test3.txt")

有人可以帮我解决这个问题吗?我无法理解有什么区别...

编辑:我已经测试并确认我的 $string_list 数组由 System.String 对象组成

最佳答案

当您指定:

$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[]

关于.net - PowerShell 数组只是 .NET 数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1337810/

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