我正在尝试编写PowerShell脚本以从多个目录构建文件列表。将所有目录添加到主列表后,我想对所有文件进行相同的处理。
这就是我所拥有的:
$items = New-Object Collections.Generic.List[IO.FileInfo]
$loc1 = @(Get-ChildItem -Path "\\server\C$\Program Files (x86)\Data1\" -Recurse)
$loc2 = @(Get-ChildItem -Path "\\server\C$\Web\DataStorage\" -Recurse)
$items.Add($loc1) # This line fails (the next also fails)
$items.Add($loc2)
# Processing code is here
失败并显示此错误:
我对这种情况的正确方法最感兴趣。我意识到我的代码是一种非常C的实现方式-如果有更多的PowerShell方法来完成同一任务,我将全力以赴。关键是
$loc#'s
的数量可能会随时间变化,因此在生成的代码中添加和删除一两个应该很容易。 最佳答案
不确定您是否需要此处的通用列表。您可以只使用PowerShell数组,例如:
$items = @(Get-ChildItem '\\server\C$\Program Files (x86)\Data1\' -r)
$items += @(Get-ChildItem '\\server\C$\Web\DataStorage\' -r)
可以使用
+=
连接PowerShell数组。关于arrays - 将两个不同的Get-ChildItem调用的结果合并为一个变量,以对它们进行相同的处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4749979/