平常工做中咱們每每有須要導出當前共享環境或磁盤文件目錄層級結構等的需求,最先在目錄少的狀況下咱們使用CMD下tree 命令能夠很清晰的看到目錄、文件層級結構,那麼咱們又如何經過powershell直觀顯示或導出某文件目錄或盤符目錄層級結構呢?html
DOS下查看目錄、文件結構:shell
tree /?
以圖形顯示驅動器或路徑的文件夾結構。
TREE [drive:][path] [/F] [/A]
/F 顯示每一個文件夾中文件的名稱。
/A 使用 ASCII 字符,而不使用擴展字符。微信
Powershell查看目錄、文件結構:ide
其實咱們經過powershell命令也能夠搭配tree命令使用,簡單操做以下:ui
Get-ChildItem D:\SW_Office_Plus |tree /f
Get-ChildItem D:\SW_Office_Plus |tree /Aspa
Get-ChildItem :獲取一個或多個指定位置中的項和子項。code
獲取當前目錄下文件夾名稱:orm
Get-ChildItem D:\SW_Office_Plus | ?{$_.psiscontainer -eq $true}htm
獲取當前目錄下文件名稱:
Get-ChildItem D:\SW_Office_Plus | ?{$_.psiscontainer -eq $false}blog
接下來進入咱們今天的主題內容,如何查看當前目錄下文件層級,具體命令以下:
Get-ChildItem -Recurse -Directory -Depth 3 |select FullName
Get-ChildItem D:\SW_Office_Plus -Recurse -Directory -Depth 3 |select Fullname
若是須要對結果進行導出,可經過以下命令操做:
Get-ChildItem -Recurse -Directory -Depth 3 |select FullName | Export-Csv d:\fullname.csv -Encoding UTF8 –NoTypeInformation
PS.補充:導出文件、文件目錄名稱、建立時間、格式等等信息:
Get-ChildItem -Path D:\SW_Office_Plus -Recurse |` foreach{ $Item = $_ $Type = $_.Extension $Path = $_.FullName $ParentS = ($_.Fullname).split("\") $Parent = $ParentS[@($ParentS.Length - 2)] $ParentPath = $_.PSParentPath $ParentPathSplit = ($_.PSParentPath).split("::") $ParentPathFinal = $ParentPathSplit[@($ParentPathSplit.Length -1)] #$ParentPath = [io.path]::GetDirectoryName($myDirectory) $Folder = $_.PSIsContainer $Age = $_.CreationTime $Path | Select-Object ` @{n="Name";e={$Item}},` @{n="Created";e={$Age}},` @{n="Folder Name";e={if($Parent){$Parent}else{$Parent}}},` @{n="filePath";e={$Path}},` @{n="Extension";e={if($Folder){"Folder"}else{$Type}}},` @{n="Folder Name 2";e={if($Parent){$Parent}else{$Parent}}},` #@{n="Folder Path";e={$ParentPath}},` @{n="Folder Path 2";e={$ParentPathFinal}}` }| Export-Csv d:\Folder.csv -Encoding UTF8 -NoTypeInformation
導出後格式以下,可自行篩選,該腳本內容具體可參考該link。
歡迎關注微信公衆號:小溫研習社