【发布时间】:2019-05-23 20:32:10
【问题描述】:
我可以使用 Get-ChildItem -Recurse 递归搜索目录以定位特定目录,但我只对目录是另一个特定目录的子目录的情况感兴趣。父/子可以存在于目录树中的任意深度。例如:
C:\lev1\lev2\lev3\lev4\parentDir\childDirToFind\lev7...
以下代码返回所有出现的 childDirToFind :
Get-ChildItem -Path C:\\*\\*\ChildDirToFind -Recurse
我尝试在 -Path 选项中包含 parentDir,但没有得到任何结果;例如:
Get-ChildItem -Path C:\\*\\*\parentDir\childDirToFind -Recurse
我也尝试使用 -Filter 选项但没有结果。也许 Get-ChildItem 不是最好的方法?理想情况下,我希望 Get-ChildItem 在找到目录后立即返回,而不是继续搜索整个树。
【问题讨论】:
-
试试
Get-ChildItem -Path c:\ -Recurse -Filter childDirToFind -
带别名:
gci x:\start -dir -rec -filter childDirToFind |? {$_.Parent.Name -eq 'parentDir'} | select -first 1 -
顺便说一句,搜索应该停止,第一个找到尾随
\lev7..是不可能的。
标签: powershell