如何使用获取子项将基本文件夹包括在子文件夹列表中? [英] How do I include the base folder in the list of sub-folders using get-childitem?

查看:11
本文介绍了如何使用获取子项将基本文件夹包括在子文件夹列表中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在子目录列表中包括基文件夹。

如果我使用Get-ChildItem并搜索文件夹:

$startFolder = "C:Scripts"
Get-ChildItem $startfolder -recurse |
Where-Object {$_.PSIsContainer -eq $True} | 
Select FullName

我得到一个子文件夹列表,如下所示:

C:Scriptsfolder1
C:Scriptsfolder2
C:Scriptsfolder2folderA

我希望看到:

C:Scripts             <-- include the starting folder
C:Scriptsfolder1
C:Scriptsfolder2
C:Scriptsfolder2folderA

我在TechNet上看到这样一个例子:

$startFolder = "C:Scripts"
$colItems = (Get-ChildItem $startFolder | Measure-Object -property length -sum)
"$startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB"

$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)
foreach ($i in $colItems)
    {
        $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
        $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
    }

他们把它分成两部分。处理起始文件夹,然后处理子文件夹。这是唯一的方法吗?还是可以将起始文件夹包括在一个命令中?

这似乎是一件很简单的事情...

推荐答案

一个解决方案:

$startFolder = "C:Scripts"
$(Get-Item $startFolder
Get-ChildItem $startfolder -recurse |
Where-Object {$_.PSIsContainer -eq $True}) | 
Select FullName

为您的$startFolders添加Get-Item,并将其与您的Get-ChildItem一起放在sub-expression中,这样它们都在同一个集合中。

这篇关于如何使用获取子项将基本文件夹包括在子文件夹列表中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆