我想查找主文件夾內的子文件夾。在不知道PowerShell中的完整路徑的情況下到達特定文件夾
實施例像我有一個名爲build
文件夾和內部建立有子文件夾作爲一個例子XYZ
,裏面XYZ
還有其它子文件夾等ZYX
,它裏面有其他文件夾。完整路徑如:build\XYZ\ZYX\ABC
。我想去ABC
但我沒有一條路可以達到它。如何查找子文件夾並在PowerShell腳本中轉到該文件夾。 將Get-childItem
工作?如果是,如何?
我想查找主文件夾內的子文件夾。在不知道PowerShell中的完整路徑的情況下到達特定文件夾
實施例像我有一個名爲build
文件夾和內部建立有子文件夾作爲一個例子XYZ
,裏面XYZ
還有其它子文件夾等ZYX
,它裏面有其他文件夾。完整路徑如:build\XYZ\ZYX\ABC
。我想去ABC
但我沒有一條路可以達到它。如何查找子文件夾並在PowerShell腳本中轉到該文件夾。 將Get-childItem
工作?如果是,如何?
可以使用Get-ChildItem
cmdlet檢索所有目錄和使用Where-Object
cmdlet來排除它有子目錄中的所有文件夾:
Get-ChildItem 'your_path_to_build' -Recurse -Directory | Where-Object { ![IO.Directory]::GetDirectories($_.FullName) }
可以使用-Directory
開關和搜索遞歸地使用下面的命令:
Get-ChildItem *ABC* -Recurse -Directory
其中* ABC *是您嘗試查找的文件夾名稱的一部分。
這可能是有點長篇大論,但我猜你是想先找出最長路徑(在層次最深的)到CD吧,所以也許是這樣的:
Set-Location (Get-ChildItem 'c:\CICDTestCICD' -Recurse -Directory |% {
[PSCustomObject]@{Path=$_.FullName;
Depth=($_.fullname.split('\')).count
}
} |
sort Depth -Descending | select -first 1
).path
的想法是:
謝謝爲答案人。我理解了一半,但我沒有得到對象,並在以後。所以,Get-childItem C:\ CICD \ TestCICD -Recurse -Directory |這是我的一半命令。並在TestCICD我有一個層次的子文件夾爲C:\ CICD \ TestCICD \ mvadaria \ mv \ mv1 \ mv2。我在找mv2。你可以根據這個例子編寫命令嗎?再次感謝 – Meet101
帶參數的Get-ChildItem會返回四個文件夾:mvadaria,mv,mv1和mv2。然後,Where-Object cmdlet篩選所有沒有子文件夾的文件夾。因此只有mv2被返回。 –