34

我想在特定目录和子目录中搜索文件夹。

我试着用谷歌搜索它,但并没有真正找到任何有用的例子。

4

2 回答 2

69
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

使用命令别名和选项卡补全开关,这很容易。我只是第一次错过了。

于 2013-09-30T11:00:31.383 回答
2

这是我的版本,只是略有不同:

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:\"

指定开始搜索的路径

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-7

于 2020-08-21T15:49:23.863 回答