将 Get-Item 与 Get-ChildItem 结合使用?

arc*_*ank 3 powershell

我以为我得到了所有的容器 $containers = Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer -eq $true},但它似乎只返回了我的$Path. 我真的很想$containers包含$Path及其子目录。我试过这个:

$containers = Get-Item -path $Path | ? {$_.psIscontainer -eq $true}
$containers += Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer -eq $true}
Run Code Online (Sandbox Code Playgroud)

但它不允许我这样做。我是否使用Get-ChildItem错误,或者如何$Path通过将 Get-Item 和 Get-ChildItem 与 -recurse 组合来让 $containers 包含和它的 $subdirectories?

zda*_*dan 5

在您第一次调用 get-item 时,您没有将结果存储在数组中(因为它只有 1 个项目)。这意味着您不能get-childitem在行中将数组附加到它。只需将结果包装成这样,就可以强制您的容器变量成为一个数组@()

$containers = @(Get-Item -path $Path | ? {$_.psIscontainer})
$containers += Get-ChildItem -path $Path -recurse | ? {$_.psIscontainer}
Run Code Online (Sandbox Code Playgroud)