Powershell脚本获取目录树的FullName
问题描述:
我试图从特定的目录树中获取每个级别的文件夹的FullName的输出。Powershell脚本获取目录树的FullName
我想得到这样的输出:
C:\
C:\dir1
C:\dir1\dir2
C:\dir1\dir2\dir3
的事情是,该目录必须是具体的...像C:\
和C:\dir1\dir2\dir3
之间的目录部分就像一个路径开始和结束路径,任何想法?
答
试试这个:
$Path = 'C:\dir1\dir2\dir3'
$Folders = $Path -Split "\\"
$Folders | % { $i = 0 } { $Folders[0..$i] -Join "\" -Replace ":$", ":\"; $i++ }
结果:
C:\
C:\dir1
C:\dir1\dir2
C:\dir1\dir2\dir3
答
对于PowerShell的V3或更高版本:
Get-ChildItem C:\dir1 -Directory -Recurse |
Select-Object -ExpandProperty FullName
对于旧版本:
Get-ChildItem C:\Dir1 -Recurse |
Where-Object { $_.PSIsContainer } |
Select-Object -ExpandProperty FullName
你喜欢那样,但是,我试图让路径只有dir1和(可以说)dir10。但是有些导演是不相关的,所以只有列表中的路径。我不知道如何只包括那些。 我尝试了几个事情与拆分路径。我虽然做了一个循环,所以它重复分裂,直到它的路径“C:\ Exaple”。但它没有按预期工作:) –
'Get-ChildItem'有一个'-Exclude'参数来排除处理中的某些项目。我建议先阅读文档。 –