如何使用PowerShell搜索文件夹

如何使用PowerShell搜索文件夹,powershell,Powershell,我想搜索特定目录和子目录中的文件夹 我试着用谷歌搜索,但没有找到任何有用的例子 Get-ChildItem C:\test -recurse | Where-Object {$_.PSIsContainer -eq $true -and $_.Name -match "keyword"} 我相信没有专门用于搜索文件的cmdlet 编辑以响应@comment: 由于Powershell 3.0将开关-Directory和-File添加到Get ChildItem中,因此这要容易得多。所以,如果你

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

我试着用谷歌搜索,但没有找到任何有用的例子

Get-ChildItem C:\test -recurse | Where-Object {$_.PSIsContainer -eq $true -and $_.Name -match "keyword"}
我相信没有专门用于搜索文件的cmdlet

编辑以响应@comment: 由于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只支持*和?通配符

只检查目录,也可以是-文件

-ErrorAction SilentlyContinue 
压制任何警告

-Path "C:\"
指定开始搜索的路径


您是否查看了
-recurse
开关打开的
Get ChildItem
?对于那些不太熟悉Powershell的人,表达式“$\ PSIsContainer-eq$true”是对当前对象作为文件夹的测试。@notriouspet0请查看编辑以获取较短版本。除此之外,流行的命令通常有您熟悉的来自*nix或cmd的别名,长命令名系统也有它的优点。由于动词-名词约定,您可以轻松掌握新模块,并找到命令:
get command-nown item
<代码>获取命令-动词convertto。这对我来说毫无意义。
ls c:\test*key*-Recurse-Directory
的哪一部分应该替换为我要查找的目录名?@Robin
*key*
是一个目录名过滤器,您希望它位于
c:\test
-Directory
中的某个位置,它只在较新版本的powershell中起作用。对于任何新员工,也
Get ChildItem==ls==gci
-Path "C:\"