我正在创建一个字符串对象数组 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对象组成
当您指定:
$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[]