我想在特定目录和子目录中搜索文件夹。
我试过谷歌搜索,但没有找到任何有用的例子。
答案 0 :(得分:33)
Get-ChildItem C:\test -recurse | Where-Object {$_.PSIsContainer -eq $true -and $_.Name -match "keyword"}
我相信没有用于搜索文件的专用cmdlet。
编辑以回应@Notorious评论:
从Powershell 3.0开始,这更容易,因为-Direcotry
和-File
已添加到Get-ChildItem
。所以,如果你想要它简短,你就得到了:
ls c:\test *key* -Recurse -Directory
使用命令别名和开关的tab-completion,它很容易。我第一次错过了。
答案 1 :(得分:0)
这是我的版本,仅略有不同:
gci -Recurse -Filter "your_folder_name" -Directory -ErrorAction SilentlyContinue -Path "C:\"
更多信息:
-Filter "your_folder_name"
摘自文档:过滤器比其他参数更有效。当cmdlet获取对象时,提供程序将应用过滤器,而不是让PowerShell在检索对象后对其进行过滤。筛选器字符串将传递到.NET API以枚举文件。该API仅支持*和?通配符。
-Directory
仅检查目录,也可以是-File
-ErrorAction SilentlyContinue
使所有警告静音
-Path "C:\"
指定开始搜索的路径