我有问题,当我试图从Powershell函数返回一个数组。Powershell函数返回数组
我的功能:
function filter-SWCluster {
param($Path, $FolderList)
$OldSWCluster = New-Object System.Collections.ArrayList
ForEach ($y in $FolderList) {
Get-ChildItem -Path $Path -Filter $y* | sort { [version]($_.Name -replace '^.*_(\d+(\.\d+){1,3})$', '$1') } -Descending | Select-Object -skip 3 | ForEach-Object { $OldSWCluster.Add($Path + "\" + $_) }
}
Write-Output $OldSWCluster
}
函数调用:
$FilerSWCluster = filter-SWCluster $NetworkPath $SWCluster
输出我得到:
0 1 \\server.domain\C$\TEMP\Folders\Testcluster_1.0.2 \\server.domain\C$\TEMP\Folders\Testcluster_1.0.1
我想和输出的需求将是:
\\server.domain\C$\TEMP\Folders\Testcluster_1.0.2 \\server.domain\C$\TEMP\Folders\Testcluster_1.0.1
我只需要路径。我知道已经有了一些解决方案,但是请原谅我,我没有找到一个为我工作的人,或者我愚蠢地使用它(可能)。
我希望有人能帮助我。
谢谢
ArrayList的'Add'方法返回新的索引,你需要隐藏它,例如'$ OldSWCluster.Add($ Path +“\”+ $ _)> $ null' – wOxxOm
你是伟大的人,它的工作完美。我的理解是否正确,添加方法不仅仅是增加了值,还增加了一个索引。当我传回变量时,索引也会传递? – Anetair
1)它只是将值添加到数组中,2)通过使用隐式写入输出将该索引发送到默认输出流中,可以通过重定向到$ null或将其转换为[void]来抑制其他答案。 – wOxxOm