我正在尝试编写一个 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
失败并出现此错误:
无法转换参数“0”,使用
值:“System.Object[]”,用于“添加”到
输入“System.IO.FileInfo”:“不能
转换“System.Object[]”值
类型为“System.Object[]”的类型
“系统.IO.文件信息”。”
我最感兴趣的是针对这种情况的正确方法是什么。我意识到我的代码非常C http://en.wikipedia.org/wiki/C_%28programming_language%29这样做的方式——如果有更多的 PowerShell 方式来完成相同的任务,我完全赞成。关键是数量$loc#'s
可能会随着时间的推移而改变,因此在生成的代码中添加和删除一两个应该很容易。
不确定您是否需要这里的通用列表。您可以只使用 PowerShell 数组,例如:
$items = @(Get-ChildItem '\\server\C$\Program Files (x86)\Data1\' -r)
$items += @(Get-ChildItem '\\server\C$\Web\DataStorage\' -r)
PowerShell 数组可以使用以下方式连接+=
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)