gpt4 book ai didi

arrays - 将两个不同的Get-ChildItem调用的结果合并为一个变量,以对它们进行相同的处理

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

我正在尝试编写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

失败并显示此错误:

Cannot convert argument "0", with value: "System.Object[]", for "Add" to type "System.IO.FileInfo": "Cannot convert the "System.Object[]" va lue of type "System.Object[]" to type "System.IO.FileInfo"."



我对这种情况的正确方法最感兴趣。我意识到我的代码是一种非常 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/

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