用于获取目录树的FullName的Powershell脚本

时间:2017-10-18 14:30:45

标签: powershell

我正在尝试从特定目录树中获取每个级别的文件夹的FullName输出。

我希望获得如下输出:

C:\
C:\dir1
C:\dir1\dir2
C:\dir1\dir2\dir3

问题是目录必须是特定的......就像C:\C:\dir1\dir2\dir3

之间的目录部分一样

像开始路径和结束路径一样,有什么想法吗?

2 个答案:

答案 0 :(得分:2)

对于PowerShell v3或更高版本:

Get-ChildItem C:\dir1 -Directory -Recurse |
  Select-Object -ExpandProperty FullName

对于旧版本:

Get-ChildItem C:\Dir1 -Recurse |
  Where-Object { $_.PSIsContainer } |
  Select-Object -ExpandProperty FullName

答案 1 :(得分:0)

试试这个:

$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