首页 > 代码库 > Powershell基础知识(二)

Powershell基础知识(二)

上一节主要介绍Powershell可发现,面向对象,一致性等特性,以及Powershell命令是基于.Net对象等重要概念,以及Powershell命令的命名规范,详细内容点击这里。


这一节的Powershell基础知识主要包含以下知识点

  1. 获取命令的摘要信息。

  2. 获取命令的帮助信息。

  3. 总结。


获取命令的摘要信息

Powershell命令 Get-Command 可检索当前shell中所有可用的命令名称。在Powershell提示符输入 Get-Command ,输出的内容类似以下内容(以下只写出输出的结果的部分内容)。

PS C:\Documents and Settings\Administrator> Get-Command

CommandType     Name                                                Definition
-----------     ----                                                ----------
Alias           %                                                   ForEach-Object
Alias           ?                                                   Where-Object
Function        A:                                                  Set-Location A:
Alias           ac                                                  Add-Content
Cmdlet          Add-Computer                                        Add-Computer [-DomainName] <String> [-Credential...
Cmdlet          Add-Content                                         Add-Content [-Path] <String[]> [-Value] <Object[...
Cmdlet          Add-History                                         Add-History [[-InputObject] <PSObject[]>] [-Pass...
Cmdlet          Add-Member                                          Add-Member [-MemberType] <PSMemberTypes> [-Name]...

在 Get-Command 命令的输出中,所有定义都以省略号 (...) 结尾,表示 PowerShell 无法在可用空间内显示所有内容。在显示输出时,PowerShell 会将输出格式设置为文本,然后对其进行排列,以使数据整齐地显示在窗口中。在后续的文章中会对命令输出的格式化做详细说明。

Get-Command cmdlet 有一个 Syntax 参数,使用该参数,可以仅检索每个 cmdlet 的语法。输入 Get-Command -Syntax 命令可以显示完整的输出:

PS C:\Documents and Settings\Administrator> Get-Command -Syntax
ForEach-Object
Where-Object
A:

Add-Content
Add-Computer [-DomainName] <String> [-Credential <PSCredential>] [-OUPath <String>] [-PassThru] [-Server <String>] [-UnSecure] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <Stri
ng>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]Add-Computer [-WorkGroupName] <String> [-Credential <PSCredential>] [-PassThru] [-Verbose] [-Debug] [-ErrorAction <Acti
onPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>] [-WarningVariable <String>] [-OutVariable<String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Add-Content [-Path] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [-Credential <PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningAction <Act
ionPreference>] [-ErrorVariable <String>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-UseTransaction] [-Encoding <FileSystemCmdletProviderEncoding>]
Add-Content [-LiteralPath] <String[]> [-Value] <Object[]> [-PassThru] [-Filter <String>] [-Include <String[]>] [-Exclude <String[]>] [-Force] [-Credential <PSCredential>] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningActi
on <ActionPreference>] [-ErrorVariable <String>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm] [-UseTransaction] [-Encoding <FileSystemCmdletProviderEncoding>]

需要注意的是,Get-Command 命令仅列出当前 shell 中的 cmdlet,并不是Powershell中的所有可用的命令。别名,函数和脚本也是Powershell命令,外部程序也归类与命令。通过输入以下命令,可以返回所有可调用项的列表:

PS> Get-Command *

由于此列表包括搜索路径中的外部文件,因此它可能包含数千个项目。实际上,仅查看精简的命令集更为有用。若要查找其他类型的本机命令,可以使用 Get-Command cmdlet 的 CommandType 参数。尽管我们尚未介绍其他这些命令类型,但如果知道某类命令的 CommandType 名称,您仍然可以显示这些命令类型。

注意:命令中的星号(*) 是通配符,表示“匹配一个或多个任意字符”,如输入Get-Command *ervice* 列出所有包含"ervice"的命令。

    若要显示特殊命令类别的别名(作标准命令名称的替代名称),可输入以下命令:

PS> Get-Command -CommandType Alias

    若要显示所有 Windows PowerShell 函数,请输入以下命令:

PS> Get-Command -CommandType Function

    若要显示 PowerShell 搜索路径中的外部脚本,请输入以下命令:

PS> Get-Command -CommandType ExternalScript

获取命令的帮助信息

  • 获取cmdlet帮助信息

    要获取有关 PowerShell cmdlet 的帮助,请使用 Get-Help cmdlet。例如,要获取Get-ChildItem的帮助,请输入:

get-help get-childitem

    或

get-childitem -?

    当然可以获取Get-Help命令本身的帮助,例如:

get-help get-help

    若要在会话中获取所有 cmdlet 帮助主题的列表,请键入:

get-help -category cmdlet

    若要每次显示每个帮助主题的一页,请使用 help 函数或其别名 man。例如,若要显示 Get-ChildItem cmdlet 的帮助,请键入

man get-childitem

    或

help get-childitem

    若要显示有关 cmdlet、函数或脚本的详细信息,包括其参数说明和使用示例,请使用 Get-Help cmdlet 的 Detailed 参数。例如,若要获取有关 Get-ChildItem cmdlet 的详细信息,请键入:

get-help get-childitem -detailed  #显示get-childitem的详细信息
get-help get-childitem -full      #显示get-childitem帮助主题的全部内容
get-help get-childitem -parameter *  #显示get-childitem参数的详细帮助
get-help get-childitem -examples     #显示get0childitem的帮助中的示例

:Powershell中,#用于注释,类似于Java或C#中的"//"。

  • 获取概念性帮助。Powershell通过 Get-Help about_* 命令获取概念性的帮助。

  • 获取有关提供程序的帮助

    Powershell可以获取提供程序的帮助信息。如要获取Registry 提供程序的帮助,请输入:

get-help registry

    如要在会话中获取所有提供程序帮助主题的列表,请输入

get-help -category provider

    Get-Help 的各个参数(如 Detailed、Parameter 和 Examples)对提供程序帮助主题的显示没有影响。

  • 获取连网帮助

    如果计算机已经连接到网络,查看帮助的最好方式是查看网上帮助主题,在线帮助主题更容易提供最新的内容。

    若要使用 Get-Help cmdlet 的 Online 参数,请使用以下命令格式。

get-help <command-name> -online

    如果该命令提供了帮助主题的联机版本,则它将在默认浏览器中打开。


总结

通过学习本节,应当掌握以下内容。

  1. 可以查看当前shell中所有可用的命令及Powershell中所有可用的命令。

  2. 对于任何一条命令会查看其摘要信息,语法信息及指定类型命令的检索。

  3. 可以获取指定命令的帮助信息,包括在线帮助信息。

  4. 知道Powershell中"#"是用于内容的注释。


本文出自 “花开花落” 博客,谢绝转载!

Powershell基础知识(二)