使用 Powershell 时,有时您会忘记某个 cmdlet 或想要了解哪些 cmdlet 可用。在这种情况下,最好在互联网上查找,但您也可以使用 Powershell 函数来完成。
以下方法对于使用 Powershell 调查 Powershell 非常有用。
说“搜索”可能有点轻描淡写,但 Powershell 有一个功能可以完成您部分键入的 cmdlet。它具有与 Linux shell 相同的功能。
此功能使您可以更快地键入 cmdlet,而无需记住确切的拼写。补全可用于输入命令和选项、选择文件路径以及选择常量。
如果您输入 cmdlet 的一部分,然后按Tab 键,则您输入的部分命令将被完成。如果再次按Tab,将会出现更多建议。如果您想返回显示的候选,请按Shift + Tab 。
PS C:\Users\Main> Get-help Get-Chil #部分入力然后按Tab键
PS C:\Users\Main> Get-help Get-ChildItem #命令会自动补充完成
使用Ctrl + Space完成时,将显示所有可能的完成,您可以使用箭头键选择一个。当一个选项完成后,底部会显示该选项的格式和可能的值等信息。
PS > Get-Net #输入到Get-Net然后 按 Ctrl + Space
PS > Get-Net6to4Configuration #能够选择表示出来的命令行列表
Get-Net6to4Configuration Get-NetIPAddress
Get-NetAdapter Get-NetIPConfiguration
・・・・・・・
PS > Get-ChildItem - # 输入到这里,然后Ctrl + Space
PS > Get-ChildItem -Path # 可以显示并选择候选选项。
Path Depth File ErrorAction OutVariable
LiteralPath Force Hidden WarningAction
[string[]] Path # 进而,在最下方显示可选地指定的值等信息。
您可以使用Get-Command搜索 cmdlet 。如果在Get-Command参数中输入 cmdlet 名称,则会显示 cmdlet 名称。
PS> get-command Get-ChildItem
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ChildItem 3.1.0.0 Microsoft.PowerShell.Management
只看这个输出,我不知道有用的 cmdlet 是什么。(通配符)可以在Get-Command参数中指定。您可以通过指定 来搜索 cmdlet。
PS > get-command Get-C*dItem
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-ChildItem 3.1.0.0 Microsoft.PowerShell.Management
Powershell cmdlet 具有 - 结构。 使用Get-Command ,您可以通过指定-Noun指定名词部分或通过指定-Verb指定动词部分进行搜索。在已发布的模块 cmdlet 中,通常将字符串添加到名词部分的开头以帮助识别模块。它的设计使您甚至可以按名称搜索 cmdlet。
# 搜索名字的时候
PS > Get-Command -Noun Item
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Clear-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Copy-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Invoke-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Move-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet New-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Remove-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Rename-Item 3.1.0.0 Microsoft.PowerShell.Management
Cmdlet Set-Item 3.1.0.0 Microsoft.PowerShell.Management
# 同时锁定动词部分
PS > Get-Command -Noun Item -Verb Get
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Item 3.1.0.0 Microsoft.PowerShell.Management
通过使用-Module指定模块,您可以检查该模块提供的 cmdlet。这使您即使对于在线信息很少的模块也可以知道提供了哪些命令。
# 在安装了Selenium的模块之后,查找可以使用的命令列。
> Get-Command -Module Selenium
CommandType Name Version Source
----------- ---- ------- ------
Alias Enter-SeUrl 3.0.1 Selenium
Alias Find-SeElement 3.0.1 Selenium
Alias Start-SeLegacyEdge 3.0.1 Selenium
Function Clear-SeAlert 3.0.1 Selenium
Function Get-SeCookie 3.0.1 Selenium
.......
有关 cmdlet 的信息可以使用Get-Help找到。或者,您可以通过向 cmdlet 添加-?参数来检查 cmdlet 信息。不过,它是英文的。
通过使用cmdlet 参数-Detailed和-Full,您可以指定要显示的信息的数量和内容。
PS C:\Users\Main> Get-help Get-ChildItem -Parameter * #显示所有参数的信息
-Attributes <System.Management.Automation.FlagsExpression`1[System.IO.FileAttributes]>
{{Fill Attributes Description}}
必須 false
位置 named
既定値 None
允许输入输油管 False
允许通配符字符 false
-Depth <UInt32>
{{Fill Depth Description}}
・
・
・
如果你会说英语,这将是一个非常有用的功能。如果您的主要语言是日语,老实说在互联网上查找会更快。如果参考使用示例,只看一眼就可以大概知道如何使用。
如果您不想在线搜索,可以使用Get-Help和-online参数从浏览器显示在线帮助。
当您使用Function编写 cmdlet时,您还可以嵌入基于注释的帮助。