使用递归- cls
-
- function Build-DirXml([System.IO.DirectoryInfo]$dir,$depth){
- #当前文件夹开始
- $str = ''
- for($i = 0; $i -lt $depth; $i++) { $str += "`t" }
- $str += '<outline text="{0}">' -f $dir.Name
- #递归子文件夹
- $dirs = $dir.GetDirectories()
- $depth_tmp = $depth
- if($dirs.Count -gt 0){
- $sub_str = "`r`n" ; ++$depth_tmp
- $dirs | foreach { $sub_str += Build-DirXml -dir $_ -depth $depth_tmp }
- } else { $sub_str = ''}
- #当前文件夹结束
- $str += $sub_str
- if($dirs.Count -gt 0){ for($i = 0; $i -lt $depth; $i++) { $str += "`t" } }
- $str += '<outline/>' + "`r`n"
- #递归结束
- return $str
- }
-
- Build-DirXml -dir (Get-Item '顶级') -depth 0
复制代码
|