Get-Verb
. 运行此命令时,将返回大多数命令遵循的谓词的列表。 此外,响应还会说明这些谓词执行哪些操作。 由于大多数命令都遵循这种命名方式,因此,它设置了命令的预期操作,这样有助于你选择适当的命令,也可帮助你在创建命令时为其命名。Get-Command
. 此命令会检索计算机上安装的所有命令的列表。Get-Member
. 它在基于对象的输出上运行,并且能够发现可用于命令的对象、属性和方法。Get-Help
. 以命令名称为参数调用此命令,将显示一个帮助页面,其中说明了命令的各个部分。
谓词
它是大多数 cmdlet 都遵循的一种命名标准。 谓词表示你尝试执行的操作,例如读取数据或更改数据。 PowerShell 有一个标准化的谓词列表。
使用 Get-Command 查找命令
根据名称筛选
你可以使用不同的参数筛选 Get-Command
的输出。 这样的筛选方式就是在命令上查询特定属性。 其中的思路是,你指定要作为筛选依据的属性,然后提供要匹配的字符串,字符串中可以使用通配符。
根据名词和谓词进行筛选
这种筛选针对的是命令名称的一部分。
-
根据谓词进行筛选。 命令名称的谓词部分位于最左侧。 在命令
Get-Process
中,谓词部分为Get
。 若要根据谓词部分进行筛选,请指定-Verb
作为参数 -
根据名词进行筛选。 命令的最右边是名词部分。 在命令
Get-Process
中,名词部分是Process
。 若要根据名词进行筛选,请指定-Noun
作为参数和字符串参数 -
一般同时根据名词和谓词进行筛选,这样可以大大缩小筛选范围。
-
注意一下:windows对大小写不敏感
使用帮助程序 cmdlet 筛选结果
除了使用参数进行筛选以外,还可以使用命令帮助你执行此任务。 下面的命令可以用作筛选器:
-
Select-Object
. 这是一个非常通用的命令,可帮助你从一个或多个对象中选取特定属性。 另外,还可以使用此命令的参数来限制收到的响应。 -
下面的
Select-Object
示例用于请求获得有限数量的记录:Get-Command | Select-Object -First 3
上面示例的结果是从顶部往下数的前三个命令。
扫描二维码关注公众号,回复: 13293264 查看本文章 -
Where-Object
. where object 可帮助你根据属性值从集合中选择对象。 此命令会采用一个表达式,你可以在其中说明要将哪些列与哪些值进行匹配。 若要查找其中的ProcessName
以p
开头的所有 process 对象,可以使用Where-Object
,如下所示:Get-Process | Where-Object {$_.ProcessName -Like "p*"}
在上面的示例中,
Get-Process
cmdlet 会生成一个 process 对象集合。 要对响应进行筛选,可以使用管道“发送”命令Where-Object
。 使用管道“发送”表示通过管道|
字符连接两个或更多个命令。 其中的思路是,一个命令的输出作为下一个命令的输入,从左向右进行读取。Where-Object
使用表达式进行筛选。 此表达式本身使用-Like
运算符和属于通配符表达式的字符串参数。
使用 Get-Member 浏览对象
当你能够找到所需的 cmdlet 后,需要进一步了解它生成的内容,即输出。
-
Get-Member
cmdlet 将显示结果的属性和方法。 此外,它还会显示对象的类型。 将你要检查的输出发送到Get-Member
。Get-Process | Get-Member
结果显示返回的类型(以
TypeName
形式)以及对象的所有属性和方法。 下面是此类结果的一段摘录:TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Handles AliasProperty Handles = Handlecount Name AliasProperty Name = ProcessName
对象通常具有许多属性和方法,你可以对结果进行筛选,以便更轻松地找到要查找的内容。 例如,通过使用
-MemberType
参数,可以指定要查看所有方法,如下面的示例所示:Get-Process | Get-Member -MemberType Method
在返回的响应中,PowerShell 通常只显示少量属性。 上面的响应中显示了
Name
、MemberType
和Definition
。 若要更改显示结果,可以使用 cmdletSelect-Object
。 使用Select-Object
,可以指定要查看哪些列。 你可以为它提供列名称、以逗号分隔的列表或通配符*
。 下面的示例使用Select-Object
检索Name
和Definition
:Get-Process | Get-Member | Select-Object Name, Definition
按类型搜索
搜索所需命令的另一种方法是,搜索在同一类型上运行的所有命令。 使用 Get-Member
后,收到的返回类型是响应的第一行,如下所示:
TypeName: System.Diagnostics.Process
现在可以使用此类型,并按如下所示搜索命令:
Get-Command -ParameterType Process
上面的调用将获得一个列表,其中是只在 Process
类型上运行的命令:
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Show-Command 作弊
该命令允许你指定你无法用对的命令名称,并以图形化的方式将命令的参数名称显示出来。
然后输入参数值,就可以运行或复制绝对正确的命令了。