我想在特定目录和子目录中搜索文件夹。
我试着用谷歌搜索它,但并没有真正找到任何有用的例子。
Get-ChildItem C:\test -recurse | Where-Object {$_.PSIsContainer -eq $true -and $_.Name -match "keyword"}
我相信没有用于搜索文件的专用 cmdlet。
编辑以回应@Notorious 评论:由于 Powershell 3.0 这更容易,因为开关-Directory
和-File
被添加到Get-ChildItem
. 所以如果你想要它简短,你有:
ls c:\test *key* -Recurse -Directory
使用命令别名和选项卡补全开关,这很容易。我只是第一次错过了。
这是我的版本,只是略有不同:
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:\"
指定开始搜索的路径