前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息、管道以及格式化输出的内容。

一、获取帮助信息

  在PS中获取帮助信息,最常用的有: -? 、get-command和get-help。这三者获取的信息不是完全一致的,并且由于get-command和get-help是cmdlet;因此具有很多实用

的参数来帮助我们获取我们想要的信息。

1、1  -? 参数

  如果我们知道某个cmdlet的拼写,但是不知道他的用户,那么最快速的方法就是用:-? 参数。 例如:我们知道copy-item 这个cmdlet,但是不知道怎么使用它,那么我们可以通过

-? 参数来获取相关帮助。

Exp:

PS C:\Users\vol_20120330> copy-item -?名称Copy-Item摘要将项从一个位置复制到命名空间内的另一个位置。语法Copy-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]说明Copy-Item cmdlet 将项从一个位置复制到命名空间中的另一个位置。Copy-Item 不会删除所复制的项。该 cmdlet 可复制的特定项取决于可用的 Windows PowerShell 提供程序。例如,与 FileSystem 提供程序一起使用时,它可以复制文件和目录;与 Registry 提供程序一起使用时,它可以复制注册表项。相关链接Online version: http://go.microsoft.com/fwlink/?LinkID=113292about_Providers Clear-Item Get-Item Invoke-Item Move-Item Set-Item New-Item Remove-Item Rename-Item 备注若要查看示例,请键入: "get-help Copy-Item -examples".有关详细信息,请键入: "get-help Copy-Item -detailed".若要获取技术信息,请键入: "get-help Copy-Item -full".

  这样我们就可以获取相关的帮助信息,这里获取的信息比较有限,对参数没有进行具体的解释,一般使用于初步了解某个cmdlet。

1、2 获取命令的概要/摘要信息

  在PS中我们通过cmdlet  get-command 来获取命令的摘要信息。get-command有很多的参数可以使用。如下所示:

Exp:

PS C:\Users\vol_20120330> get-help   get-command  -parameter *-ArgumentList <Object[]>获取 cmdlet 或函数在与指定的参数(如 path)一起使用时的信息。ArgumentList 的别名为 Args。要检测在 cmdlet 与特定的提供程序一起使用时添加到 cmdlet 中的参数,请将 ArgumentList 的值设置为提供程序驱动器中的一条路径,如“HKML\Software”或“cert:\my”。是否必需?                    False位置?                        2默认值                是否接受管道输入?            false是否接受通配符?              False-CommandType <CommandTypes>只获取指定类型的命令。使用“CommandType”或它的别名“Type”。默认情况下,Get-Command 获取 cmdlet 和函数。有效值包括:-- Alias:当前会话中的所有 Windows PowerShell 别名。-- All:所有命令类型。它与“get-command *”等效。-- Application:位于 Path 环境变量 ($env:path) 所列路径中的所有非 Windows-PowerShell 文件,例如 .txt、.exe 和 .dll 文件。-- Cmdlet:当前会话中的 cmdlet。默认值为“Cmdlet”。-- ExternalScript:位于 Path 环境变量 ($env:path) 所列路径中的全部 .ps1 文件。-- Filter and Function:所有 Windows PowerShell 函数。-- Script:当前会话中的脚本块。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-Module <string[]>获取源自指定模块或管理单元的命令。输入模块或管理单元的名称,或输入管理单元或模块对象。可以使用此参数的名称 Module 或其别名 PSSnapin 对其进行引用。选择的参数名称不会影响到命令或命令的输出。此参数接受字符串值,但您也可以提供 PSModuleInfo 或 PSSnapinInfo 对象(如 Get-Module、Get-PSSnapin 和 Import-PSSession 返回的对象)。是否必需?                    False位置?                        named默认值                无是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-Name <string[]>只获取具有指定名称的 cmdlet 或命令元素的相关信息。<字符串> 表示 cmdlet 或命令元素的名称的全部或一部分。允许使用通配符。要按执行顺序列出具有相同名称的命令,请键入不含通配符的命令名称。有关详细信息,请参阅“注释”部分。是否必需?                    False位置?                        1默认值                是否接受管道输入?            true (ByValue, ByPropertyName)是否接受通配符?              False-Noun <string[]>获取名称包含指定名词的 cmdlet 和函数。<字符串> 表示一个或多个名词或名词模式,例如,“process”或“*item*”。允许使用通配符。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-Syntax [<SwitchParameter>]只获取有关命令元素的指定数据。* 对于别名,检索标准名称。* 对于 cmdlet,检索语法。* 对于函数和筛选器,检索函数定义。* 对于脚本和应用程序(文件),检索路径和文件名。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-TotalCount <int>只获取指定数量的命令元素。可使用此参数限制命令的输出。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-Verb <string[]>获取名称包含指定动词的 cmdlet 和函数的信息。<字符串> 表示一个或多个动词或动词模式,例如,“remove”或“*et”。允许使用通配符。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False

  通过上面的信息我们知道get-command支持以下一些参数:noun、 verb、syntax、name、commandtype、totalcount等; 其中用的比较多的是前面5个。

例如我们可以利用下面的形式查询cmdlet。

       get-command  -noun  item

Exp:

PS C:\Users\vol_20120330> get-command -noun  itemCommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Clear-Item                      Clear-Item [-Path] <String[]...
Cmdlet          Copy-Item                       Copy-Item [-Path] <String[]>...
Cmdlet          Get-Item                        Get-Item [-Path] <String[]> ...
Cmdlet          Invoke-Item                     Invoke-Item [-Path] <String[...
Cmdlet          Move-Item                       Move-Item [-Path] <String[]>...
Cmdlet          New-Item                        New-Item [-Path] <String[]> ...
Cmdlet          Remove-Item                     Remove-Item [-Path] <String[...
Cmdlet          Rename-Item                     Rename-Item [-Path] <String>...
Cmdlet          Set-Item                        Set-Item [-Path] <String[]> ...

  可以利用-verb参数查询具有某个动词的cmdlet; 如利用下面的命令获取具有copy这个动词的cmdlet。

      get-command -verb  copy

Exp:

PS C:\Users\vol_20120330> get-command -verb copyCommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Copy-Item                       Copy-Item [-Path] <String[]>...
Cmdlet          Copy-ItemProperty               Copy-ItemProperty [-Path] <S...

  利用syntax参数获取某个命令的语法,例如利用以下的命令获取set-location的语法

    get-command   -syntax     set-location

Exp:

PS C:\Users\vol_20120330> get-command   -syntax     set-location
Set-Location [[-Path] <String>] [-PassThru] [-Verbose] [-Debug] [-ErrorAction <
ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>
] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [-Us
eTransaction]
Set-Location [-LiteralPath] <String> [-PassThru] [-Verbose] [-Debug] [-ErrorAct
ion <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <St
ring>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>][-UseTransaction]
Set-Location [-PassThru] [-StackName <String>] [-Verbose] [-Debug] [-ErrorActio
n <ActionPreference>] [-WarningAction <ActionPreference>] [-ErrorVariable <Stri
ng>] [-WarningVariable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] [
-UseTransaction]

  利用commandtype来查询特定类型的cmdlet。 例如我们利用下面的命令获取PS中支持的别名。

    get-command   -commandtype   alias    #这个命令相当于  get-alias 命令

Exp:

PS C:\Users\vol_20120330> get-command   -commandtype   aliasCommandType     Name                            Definition
-----------     ----                            ----------
Alias           %                               ForEach-Object
Alias           ?                               Where-Object
Alias           ac                              Add-Content
Alias           asnp                            Add-PSSnapIn
Alias           cat                             Get-Content
Alias           cd                              Set-Location
Alias           chdir                           Set-Location
Alias           clc                             Clear-Content
Alias           clear                           Clear-Host
Alias           clhy                            Clear-History
Alias           cli                             Clear-Item
Alias           clp                             Clear-ItemProperty
Alias           cls                             Clear-Host
Alias           clv                             Clear-Variable
Alias           compare                         Compare-Object
Alias           copy                            Copy-Item
Alias           cp                              Copy-Item
Alias           cpi                             Copy-Item
Alias           cpp                             Copy-ItemProperty
Alias           cvpa                            Convert-Path
Alias           dbp                             Disable-PSBreakpoint
Alias           del                             Remove-Item
Alias           diff                            Compare-Object
Alias           dir                             Get-ChildItem
Alias           ebp                             Enable-PSBreakpoint
Alias           echo                            Write-Output
Alias           epal                            Export-Alias
Alias           epcsv                           Export-Csv
Alias           epsn                            Export-PSSession
Alias           erase                           Remove-Item
Alias           etsn                            Enter-PSSession
Alias           exsn                            Exit-PSSession
Alias           fc                              Format-Custom
Alias           fl                              Format-List
Alias           foreach                         ForEach-Object
Alias           ft                              Format-Table
Alias           fw                              Format-Wide
Alias           gal                             Get-Alias
Alias           gbp                             Get-PSBreakpoint
Alias           gc                              Get-Content
Alias           gci                             Get-ChildItem
Alias           gcm                             Get-Command
Alias           gcs                             Get-PSCallStack
Alias           gdr                             Get-PSDrive
Alias           ghy                             Get-History
Alias           gi                              Get-Item
Alias           gjb                             Get-Job
Alias           gl                              Get-Location
Alias           gm                              Get-Member
Alias           gmo                             Get-Module
Alias           gp                              Get-ItemProperty
Alias           gps                             Get-Process
Alias           group                           Group-Object
Alias           gsn                             Get-PSSession
Alias           gsnp                            Get-PSSnapIn
Alias           gsv                             Get-Service
Alias           gu                              Get-Unique
Alias           gv                              Get-Variable
Alias           gwmi                            Get-WmiObject
Alias           h                               Get-History
Alias           history                         Get-History
Alias           icm                             Invoke-Command
Alias           iex                             Invoke-Expression
Alias           ihy                             Invoke-History
Alias           ii                              Invoke-Item
Alias           ipal                            Import-Alias
Alias           ipcsv                           Import-Csv
Alias           ipmo                            Import-Module
Alias           ipsn                            Import-PSSession
Alias           ise                             powershell_ise.exe
Alias           iwmi                            Invoke-WMIMethod
Alias           kill                            Stop-Process
Alias           lp                              Out-Printer
Alias           ls                              Get-ChildItem
Alias           man                             help
Alias           md                              mkdir
Alias           measure                         Measure-Object
Alias           mi                              Move-Item
Alias           mount                           New-PSDrive
Alias           move                            Move-Item
Alias           mp                              Move-ItemProperty
Alias           mv                              Move-Item
Alias           nal                             New-Alias
Alias           ndr                             New-PSDrive
Alias           ni                              New-Item
Alias           nmo                             New-Module
Alias           nsn                             New-PSSession
Alias           nv                              New-Variable
Alias           ogv                             Out-GridView
Alias           oh                              Out-Host
Alias           popd                            Pop-Location
Alias           ps                              Get-Process
Alias           pushd                           Push-Location
Alias           pwd                             Get-Location
Alias           r                               Invoke-History
Alias           rbp                             Remove-PSBreakpoint
Alias           rcjb                            Receive-Job
Alias           rd                              Remove-Item
Alias           rdr                             Remove-PSDrive
Alias           ren                             Rename-Item
Alias           ri                              Remove-Item
Alias           rjb                             Remove-Job
Alias           rm                              Remove-Item
Alias           rmdir                           Remove-Item
Alias           rmo                             Remove-Module
Alias           rni                             Rename-Item
Alias           rnp                             Rename-ItemProperty
Alias           rp                              Remove-ItemProperty
Alias           rsn                             Remove-PSSession
Alias           rsnp                            Remove-PSSnapin
Alias           rv                              Remove-Variable
Alias           rvpa                            Resolve-Path
Alias           rwmi                            Remove-WMIObject
Alias           sajb                            Start-Job
Alias           sal                             Set-Alias
Alias           saps                            Start-Process
Alias           sasv                            Start-Service
Alias           sbp                             Set-PSBreakpoint
Alias           sc                              Set-Content
Alias           select                          Select-Object
Alias           set                             Set-Variable
Alias           si                              Set-Item
Alias           sl                              Set-Location
Alias           sleep                           Start-Sleep
Alias           sort                            Sort-Object
Alias           sp                              Set-ItemProperty
Alias           spjb                            Stop-Job
Alias           spps                            Stop-Process
Alias           spsv                            Stop-Service
Alias           start                           Start-Process
Alias           sv                              Set-Variable
Alias           swmi                            Set-WMIInstance
Alias           tee                             Tee-Object
Alias           type                            Get-Content
Alias           where                           Where-Object
Alias           wjb                             Wait-Job
Alias           write                           Write-Output   

1、3 获取详细帮助

  在PS中可以通过get-help cmdlet获取详细的帮助信息,首先我们来看一下get-help命令支持的参数。

Exp:

PS C:\Users\vol_20120330> get-help  get-help -parameter *-Category <string[]>显示指定类别中项的帮助。有效值为 Alias、Cmdlet、Provider 和 HelpFile。概念性主题在 HelpFile 类别中。Category 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“about_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Component <string[]>显示具有指定的组件值(例如“Exchange”)的工具的列表。输入组件名。允许使用通配符。Component 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Detailed [<SwitchParameter>]将参数说明以及示例添加到基本的帮助显示中。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Examples [<SwitchParameter>]只显示名称、摘要和示例。要只显示示例,请键入“(get-help <cmdlet-name>).examples”。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Full [<SwitchParameter>]显示一个 cmdlet 的完整帮助文件,其中包括参数说明和属性、示例、输入和输出对象类型以及附加注释。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Functionality <string[]>显示具有指定功能的项的帮助。输入功能。允许使用通配符。Functionality 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Name <string>请求有关指定的工具或概念性主题的帮助。输入 cmdlet、提供程序、脚本或函数名称(如 Get-Member)、概念性主题名称(如“about_Objects”)或别名(如“ls”)。在 cmdlet 和提供程序名称中允许使用通配符,但不能使用通配符查找函数帮助和脚本帮助主题的名称。若要为不在 Path 环境变量中所列出的路径中的脚本获取帮助,请键入该脚本的路径和文件名。如果您输入的正好是帮助主题的名称,Get-Help 将显示主题内容。如果您输入了出现在若干个帮助主题标题中的字或字图,Get-Help 将显示匹配标题的列表。如果您输入的字不匹配任何帮助主题标题,Get-Help 将显示内容包括该字的主题的列表。概念主题的名称(如 about_Objects)必须用英文输入,即使在非英文版的 Windows PowerShell 中也是如此。是否必需?                    False位置?                        1默认值                是否接受管道输入?            true (ByPropertyName)是否接受通配符?              False-Online [<SwitchParameter>]在默认的 Internet 浏览器中显示帮助主题的联机版本。此参数仅适用于 cmdlet、函数和脚本帮助主题。Get-Help 使用显示在 cmdlet、函数或脚本帮助主题的“相关链接”部分的第一个项中的 Internet 地址(统一资源标识符 [URI])。仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/fwlink/?LinkID=123415。是否必需?                    False位置?                        named默认值                无是否接受管道输入?            false是否接受通配符?              False-Parameter <string>只显示指定参数的详细说明。允许使用通配符。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Path <string>获取说明 cmdlet 如何在指定的提供程序路径中工作的帮助。输入 Windows PowerShell 提供程序路径。此参数获取 cmdlet 帮助主题的自定义版本,该帮助主题说明 cmdlet 如何在指定的 Windows PowerShell 提供程序路径中工作。此参数仅对于有关提供程序 cmdlet 的帮助有效,并且仅当该提供程序包括自定义版本的提供程序 cmdlet 帮助主题时才有效。要查看提供程序路径的自定义 cmdlet 帮助,请转到提供程序路径位置并输入 Get-Help 命令,或者从任意路径位置使用 Get-Help 的 Path 参数来指定提供程序路径。有关详细信息,请参阅 about_Providers。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Role <string[]>显示为指定的用户角色自定义的帮助。输入一个角色。允许使用通配符。输入用户在组织中担任的职位。某些 cmdlet 可以根据此参数的值在其帮助文件中显示不同的文本。此参数不影响核心 cmdlet 的帮助。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False

  可以发现get-help支持的参数比较多,一般应用比较多的有:  full、detailed、examples、category、parameter、online。下面我们简单的介绍这些参数。

1、3、1 full参数

  full  参数用于获取某个命令的全部帮助信息,通过这个参数可以对一个命令完全掌握。这里不举例了。

1、3、2  detailed参数

  detailed 参数用于获取某个命令的详细信息,但是提供的信息没有full参数多。

Exp:

PS C:\Users\vol_20120330> get-help  get-help -detailed名称Get-Help摘要显示有关 Windows PowerShell 命令和概念的信息。语法Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]Get-Help [-Detailed] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]Get-Help [-Examples] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]Get-Help [-Parameter <string>] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <string[]>] [<CommonParameters>]说明Get-Help cmdlet 显示有关 Windows PowerShell 概念和命令(包括 cmdlet、提供程序、函数和脚本)的信息。要获取所有 cmdlet 帮助主题标题的列表,请键入“get-help *”。如果键入“Get-Help”并在其后键入帮助主题的确切名称或某个帮助主题特有的字,Get-Help 会显示该主题的内容。如果您输入了出现在若干个帮助主题标题中的字或字图,Get-Help 将显示匹配标题的列表。如果输入的字未出现在任何帮助主题标题中,Get-Help 将显示内容中包括该字的主题的列表。除“get-help”外,还可以键入“help”或“man”(一次显示一屏文本),或者键入“<cmdlet-name> -?”(与 Get-Help 相同,但只适用于 cmdlet)。可以显示完整的帮助文件,或其中的选定部分,如语法、参数或示例。还可使用 Online 参数在 Internet 浏览器中显示帮助文件的联机版本。这些参数对概念性帮助主题没有影响。Windows PowerShell 中的概念性帮助主题以“about_”开头,如“about_Comparison_Operators”。要查看所有“about_”主题,请键入“get-help about_*”。要查看特定主题,请键入“get-help about_<主题名>”,如“get-help about_Comparison_Operators”。参数-Category <string[]>显示指定类别中项的帮助。有效值为 Alias、Cmdlet、Provider 和 HelpFile。概念性主题在 HelpFile 类别中。Category 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“about_”)帮助的显示。-Component <string[]>显示具有指定的组件值(例如“Exchange”)的工具的列表。输入组件名。允许使用通配符。Component 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”)帮助的显示。-Detailed [<SwitchParameter>]将参数说明以及示例添加到基本的帮助显示中。此参数不影响概念性(“About_”)帮助的显示。-Examples [<SwitchParameter>]只显示名称、摘要和示例。要只显示示例,请键入“(get-help <cmdlet-name>).examples”。此参数不影响概念性(“About_”)帮助的显示。-Full [<SwitchParameter>]显示一个 cmdlet 的完整帮助文件,其中包括参数说明和属性、示例、输入和输出对象类型以及附加注释。此参数不影响概念性(“About_”)帮助的显示。-Functionality <string[]>显示具有指定功能的项的帮助。输入功能。允许使用通配符。Functionality 是 Get-Help 返回的 MamlCommandHelpInfo 对象的一个属性。此参数不影响概念性(“About_”)帮助的显示。-Name <string>请求有关指定的工具或概念性主题的帮助。输入 cmdlet、提供程序、脚本或函数名称(如 Get-Member)、概念性主题名称(如“about_Objects”)或别名(如“ls”)。在 cmdlet 和提供程序名称中允许使用通配符,但不能使用通配符查找函数帮助和脚本帮助主题的名称。若要为不在 Path 环境变量中所列出的路径中的脚本获取帮助,请键入该脚本的路径和文件名。如果您输入的正好是帮助主题的名称,Get-Help 将显示主题内容。如果您输入了出现在若干个帮助主题标题中的字或字图,Get-Help 将显示匹配标题的列表。如果您输入的字不匹配任何帮助主题标题,Get-Help 将显示内容包括该字的主题的列表。概念主题的名称(如 about_Objects)必须用英文输入,即使在非英文版的 Windows PowerShell 中也是如此。-Online [<SwitchParameter>]在默认的 Internet 浏览器中显示帮助主题的联机版本。此参数仅适用于 cmdlet、函数和脚本帮助主题。Get-Help 使用显示在 cmdlet、函数或脚本帮助主题的“相关链接”部分的第一个项中的 Internet 地址(统一资源标识符 [URI])。仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/fwlink/?LinkID=123415。-Parameter <string>只显示指定参数的详细说明。允许使用通配符。此参数不影响概念性(“About_”)帮助的显示。-Path <string>获取说明 cmdlet 如何在指定的提供程序路径中工作的帮助。输入 Windows PowerShell 提供程序路径。此参数获取 cmdlet 帮助主题的自定义版本,该帮助主题说明 cmdlet 如何在指定的 Windows PowerShell 提供程序路径中工作。此参数仅对于有关提供程序 cmdlet 的帮助有效,并且仅当该提供程序包括自定义版本的提供程序 cmdlet 帮助主题时才有效。要查看提供程序路径的自定义 cmdlet 帮助,请转到提供程序路径位置并输入 Get-Help 命令,或者从任意路径位置使用 Get-Help的 Path 参数来指定提供程序路径。有关详细信息,请参阅 about_Providers。-Role <string[]>显示为指定的用户角色自定义的帮助。输入一个角色。允许使用通配符。输入用户在组织中担任的职位。某些 cmdlet 可以根据此参数的值在其帮助文件中显示不同的文本。此参数不影响核心 cmdlet 的帮助。<CommonParameters>此 cmdlet 支持通用参数: Verbose、Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、OutBuffer 和 OutVariable。有关详细信息,请键入“get-help about_commonparameters”。-------------------------- 示例 1 --------------------------C:\PS>get-help说明-----------此命令显示有关 Windows PowerShell 帮助系统的帮助。-------------------------- 示例 2 --------------------------C:\PS>get-help *说明-----------此命令显示 Windows PowerShell 帮助系统中的所有帮助文件的列表。-------------------------- 示例 3 --------------------------C:\PS>get-help get-aliasC:\PS>help get-aliasC:\PS>get-alias -?说明-----------这些命令显示有关 get-alias cmdlet 的基本信息。“Get-Help”和“-?”命令在单个页面上显示信息。“Help”命令一次一个页面地显示信息。-------------------------- 示例 4 --------------------------C:\PS>get-help about_*说明-----------此命令显示 Windows PowerShell 帮助中包括的概念主题的列表。所有这些主题都以字符“about_”开始。若要显示特定帮助文件,请键入“get-help <主题名称>”,例如,“get-help about_signing”。-------------------------- 示例 5 --------------------------C:\PS>get-help ls -detailed说明-----------此命令通过指定 Get-ChildItem cmdlet 的一个别名“ls”来显示其详细帮助。Detailed 参数请求帮助文件的详细视图,包括参数描述和示例。若要查看 cmdlet 的完整的帮助文件,请使用 Full 参数。-------------------------- 示例 6 --------------------------C:\PS>get-help format-string -full说明-----------此命令显示 Format-String cmdlet 的完整视图帮助。帮助的完整视图包括参数说明、示例,以及有关参数的详细技术信息的表。-------------------------- 示例 7 --------------------------C:\PS>get-help start-service -examples说明-----------此命令显示在 Windows PowerShell 命令中使用 start-service 的示例。-------------------------- 示例 8 --------------------------C:\PS>get-help get-childitem -parameter f*说明-----------此命令显示以“f”开始的 Get-ChildItem cmdlet 的参数(filter 和 force)的说明。有关所有参数的说明,请键入“get-help get-childitem parameter*”。-------------------------- 示例 9 --------------------------C:\PS>(get-help write-output).syntax说明-----------此命令只显示 Write-Output cmdlet 的语法。语法是帮助对象的许多属性之一;其他是描述、详细信息、示例和参数。若要查找帮助对象的所有属性和方法,请键入“get-help <cmdlet-name>| get-member”;例如,“get-help start-service | get member”。-------------------------- 示例 10 --------------------------C:\PS>(get-help trace-command).alertset说明-----------此命令显示该 cmdlet 的相关注释。注释存储在帮助对象的 alertSet 属性中。注释包括概念性信息和使用 cmdlet 的提示。默认情况下,只有使用 Get-Help 的 Full 参数时才会显示注释,但也可使用 alertSet属性显示它们。-------------------------- 示例 11 --------------------------C:\PS>get-help add-member -full | out-string -stream | select-string -pattern clixml说明-----------此示例说明如何搜索特定的 cmdlet 帮助主题中的字。此命令在 Add-Member cmdlet 的完整版帮助主题中搜索字“clixml”。因为 Get-Help cmdlet 生成的是 MamlCommandHelpInfo 对象,而不是字符串,所以需要使用将帮助主题内容转换为字符串的命令,如 Out-String 或 Out-File。-------------------------- 示例 12 --------------------------C:\PS>get-help get-member -online说明-----------此命令显示 Get-Member cmdlet 的联机版帮助主题。-------------------------- 示例 13 --------------------------C:\PS>get-help remoting说明-----------此命令显示内容中包含单词“remoting”一字的主题的列表。如果输入的字未出现在任何主题标题中,Get-Help 将显示包括该字的主题列表。-------------------------- 示例 14 --------------------------C:\PS>get-help get-item -path SQLSERVER:\DataCollectionNAMEGet-ItemSYNOPSISGets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection.       ...C:\PS> cd SQLSERVER:\DataCollectionC:\PS> SQLSERVER:\DataCollection> get-help get-itemNAMEGet-ItemSYNOPSISGets a collection of Server objects for the local computer and any computers to which you have made a SQL Server PowerShell connection.       ...C:\PS> Get-ItemNAMEGet-ItemSYNOPSISGets the item at the specified location....说明-----------此示例说明如何获取 Get-Item cmdlet 的帮助,了解如何在 Windows PowerShell SQL Server 提供程序的 DataCollection 节点中使用该 cmdlet。该示例演示了获取 Get-Item 的自定义帮助的两种方式。第一条命令使用 Get-Help 的 Path 参数来指定提供程序路径。可以在任意路径位置输入此命令。第二条命令使用 Set-Location cmdlet(别名为“cd”)来转到提供程序路径。从该位置,即使不使用 Path 参数,Get-Help 命令也会获取该提供程序路径的自定义帮助。第三条命令说明了文件系统路径中的 Get-Help 命令在不使用 Path 参数的情况下,获取 Get-Item cmdlet 的标准帮助。-------------------------- 示例 15 --------------------------C:\PS>get-help c:\ps-test\MyScript.ps1说明-----------此命令获取 MyScript.ps1 脚本的帮助。有关如何编写函数和脚本的帮助的信息,请参阅 about_Comment_Based_Help。备注若要查看示例,请键入: "get-help Get-Help -examples".有关详细信息,请键入: "get-help Get-Help -detailed".若要获取技术信息,请键入: "get-help Get-Help -full".____________________________________________________________________________

1、3、3  examples参数

  examples 参数用来获取某个命令的实例信息。

Exp:

PS C:\Users\vol_20120330> get-help -examples  set-executionpolicy名称Set-ExecutionPolicy摘要更改 Windows PowerShell 执行策略的用户首选项。-------------------------- 示例 1 --------------------------C:\PS>set-executionpolicy remotesigned说明-----------此命令将 shell 执行策略的用户首选项设置为 RemoteSigned。-------------------------- 示例 2 --------------------------C:\PS>Set-ExecutionPolicy RestrictedSet-ExecutionPolicy : Windows PowerShell updated your local preference successfully, but the setting is overridden by the group policy applied to yoursystem. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator for more information.At line:1 char:20+ set-executionpolicy  <<<< restricted说明-----------此命令尝试将 shell 的执行策略设置为“Restricted”。向注册表中写入了“Restricted”设置,但是,由于它与组策略冲突,因此该设置无效,即使该设置比组策略的限制更严格也是如此。-------------------------- 示例 3 --------------------------C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force说明-----------此命令从远程计算机获取执行策略并将该策略应用于本地计算机。此命令使用 Invoke-Command cmdlet 向远程计算机发送命令。由于可以通过管道将 ExecutionPolicy (Microsoft.PowerShell.ExecutionPolicy) 对象传递到 Set-ExecutionPolicy,因此此命令不需要 ExecutionPolicy 参数。该命令具有 Force 参数,该参数可禁止显示用户提示。-------------------------- 示例 4 --------------------------C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -forceC:\PS> get-executionpolicy -listScope   ExecutionPolicy-----   ---------------MachinePolicy         UndefinedUserPolicy         UndefinedProcess         UndefinedCurrentUser         AllSignedLocalMachine      RemoteSignedC:\PS> get-executionpolicyAllSigned说明-----------此示例演示如何设置特定作用域的执行策略。第一个命令使用 Set-ExecutionPolicy cmdlet 设置当前用户的 AllSigned 的执行策略。它使用 Force 参数禁止显示用户提示。第二个命令使用 Get-ExecutionPolicy 的 List 参数获取每个作用域中设置的执行策略。结果显示,为当前用户设置的执行策略不同于为计算机的所有用户设置的执行策略。第三个命令使用不带参数的 Get-ExecutionPolicy cmdlet 获取本地计算机上的当前用户的有效执行策略。结果证明,为当前用户设置的执行策略优先于为所有用户设置的执行策略。-------------------------- 示例 5 --------------------------C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined说明-----------此命令使用执行策略值 Undefined 有效删除为当前用户作用域设置的执行策略。结果,在组策略或 LocalMachine(所有用户)作用域中设置的执行策略是有效的。如果将所有作用域中的执行策略设置为 Undefined 并且未设置组策略,则默认的执行策略 Restricted 对计算机的所有用户都是有效的。

1、3、4  category参数

  category参数用来获取某一类cmdlet,有点类似于get-command  -commandtype 命令。

Exp:

PS C:\Users\vol_20120330> get-help -category  aliasName                              Category  Synopsis
----                              --------  --------
ac                                Alias     Add-Content
asnp                              Alias     Add-PSSnapin
clc                               Alias     Clear-Content
cli                               Alias     Clear-Item
clp                               Alias     Clear-ItemProperty
clv                               Alias     Clear-Variable
compare                           Alias     Compare-Object
cpi                               Alias     Copy-Item              

1、3、5  parameter参数

  parameter 参数用来获取某个cmdlet的某个指定的参数帮助信息。

Exp:

PS C:\Users\vol_20120330> get-help get-help  -parameter  parameter-Parameter <string>只显示指定参数的详细说明。允许使用通配符。此参数不影响概念性(“About_”)帮助的显示。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False

1、3、6  online参数

  online参数用来通过互联网获取某个cmdlet的帮助信息。

Exp:

  get-help  -online   get-process   #这个命令通过互联网获取get-process的帮助信息

1、4  获取概念性帮助

  PS中帮助系统提供了一整套的帮助文件和信息来提供PS中的概念性信息,我们可以通过get-help  about_* 来获取PS中提供的概念性帮助主题;下面我们通过一个命令来获取

执行提供程序段相关帮助信息。

Exp:

____________________________________________________________________________
PS C:\Users\vol_20120330> get-help about_providers
主题about_Providers简短说明描述 Windows PowerShell 提供程序如何使用户能够访问在无这些提供程序时很难从命令行访问的数据和组件。数据以类似于文件系统驱动器的一致格式提供。详细说明Windows PowerShell 提供程序是基于 Microsoft .NET Framework 的程序,它们使存储于专用数据存储中的数据在 Windows PowerShell 中可用,以便于您查看和管理这些数据。提供程序公开的数据存储在驱动器中,您可以像在硬盘驱动器上一样通过路径访问这些数据。可以使用提供程序支持的任何内置 cmdlet 管理提供程序驱动器中的数据。此外,可以使用专门针对这些数据设计的自定义 cmdlet。提供程序在内置 cmdlet 中添加动态参数。只有当 cmdlet 与提供程序数据一起使用时,这些参数才可用。内置提供程序Windows PowerShell 包括一组内置提供程序,它们可以用于访问不同类型的数据存储。提供程序        驱动器        数据存储-----------------   ------------        ------------------------------Alias        Alias:        Windows PowerShell 别名证书用于数字签名的     Cert:        x509 证书EnvironmentWindows     Env:         环境变量FileSystem        *         文件系统驱动器、目录和文件Function        Function:    Windows PowerShell 函数Registry        HKLM:, HKCU       Windows 注册表Variable        Variable:     Windows PowerShell 变量WS-Management       WSMan           WS-Management 配置信息* FileSystem 驱动器因系统而异。 您还可以创建自己的 Windows PowerShell 提供程序,也可以安装他人开发的提供程序。若要列出会话中可用的提供程序,请键入:get-psprovider安装和删除提供程序Windows PowerShell 提供程序在 Windows PowerShell 管理单元中提供给您使用,这些管理单元是编译为 .dll 文件的基于 .NET Framework 的程序。这些管理单元可以包含提供程序和 cmdlet。在使用提供程序功能之前,必须先安装包含该提供程序的管理单元,然后将该管理单元添加到 Windows PowerShell 控制台。有关详细信息,请参阅 about_PsSnapins。不能在当前会话中卸载提供程序,但可以移除提供程序的 Windows PowerShell 管理单元。如果这样做,则将移除该管理单元的所有内容,包括其 cmdlet。若要从当前会话中移除提供程序,请使用 Remove-PsSnapin cmdlet。此 cmdlet 不会卸载提供程序,但它将使该提供程序在会话中不可用。还可以使用 Remove-PsDrive cmdlet 从当前会话中移除任何驱动器。驱动器上的数据不会受影响,但该驱动器在该会话中不再可用。查看提供程序若要查看计算机上的 Windows PowerShell 提供程序,请键入:get-psprovider输出将列出内置的提供程序以及您添加到会话中的提供程序。提供程序 CMDLET下面的 cmdlet 用于处理由任何提供程序公开的数据。可以使用相同的 cmdlet,以相同的方式来管理提供程序公开的不同类型的数据。在学会管理一个提供程序的数据后,就可以使用相同的过程来管理任何提供程序中的数据。例如,New-Item cmdlet 用于创建一个新项。在 FileSystem 提供程序支持的 C: 驱动器中,可以使用 New-Item 来创建新的文件或文件夹。在 Registry 提供程序支持的驱动器中,可以使用 New-Item 来创建新的注册表项。在 Alias: 驱动器中,可以使用 New-Item 来创建新的别名。有关以下任何 cmdlet 的详细信息,请键入:get-help <cmdlet-name> -detailedCHILDITEM CMDLETGet-ChildItemCONTENT CMDLETAdd-ContentClear-ContentGet-ContentSet-ContentITEM CMDLETClear-ItemCopy-ItemGet-ItemInvoke-ItemMove-ItemNew-ItemRemove-ItemRename-ItemSet-ItemITEMPROPERTY CMDLETClear-ItemPropertyCopy-ItemPropertyGet-ItemPropertyMove-ItemPropertyNew-ItemPropertyRemove-ItemPropertyRename-ItemPropertySet-ItemPropertyLOCATION CMDLETGet-LocationPop-LocationPush-LocationSet-LocationPATH CMDLETJoin-PathConvert-PathSplit-PathResolve-PathTest-PathPSDRIVE CMDLETGet-PSDriveNew-PSDriveRemove-PSDrivePSPROVIDER CMDLETGet-PSProvider查看提供程序数据提供程序的主要优点是,它可以按人们所熟悉的且一致的方式来公开其数据。用于显示数据的模型是文件系统驱动器。若要使用提供程序所公开的数据,可以将该数据视为硬盘驱动器中的数据来对其进行查看、浏览和更改。因此,有关提供程序的最重要信息是它所支持的驱动器的名称。驱动器在 Get-PsProvider cmdlet 的默认显示中列出,但是可以使用 Get-PsDrive cmdlet 来获取有关该提供程序驱动器的信息。例如,若要获取 Function: 驱动器的所有属性,请键入:get-psdrive Function | format-list *可以像在文件系统驱动器中一样查看和浏览提供程序驱动器中的数据。若要查看提供程序驱动器的内容,请使用 Get-Item 或 Get-ChildItem cmdlet。键入驱动器名称,后跟一个冒号 (:)。例如,若要查看 Alias: 驱动器的内容,请键入:get-item alias:可以从一个驱动器中查看和管理任何其他驱动器中的数据。例如,若要从另一个驱动器查看 HKLM: 驱动器中的 HKLM\Software 注册表项,请键入:get-childitem hklm:\software若要打开驱动器,请使用 Set-Location cmdlet。请记住,指定驱动器路径时要包含冒号。例如,若要将位置更改为 Cert: 驱动器的根目录,请键入:set-location cert:然后,若要查看 Cert: 驱动器的内容,请键入:get-childitem浏览分层数据可以像浏览硬盘驱动一样浏览提供程序驱动器。如果数据位于项目内的项目层次结构中,请使用反斜杠 (\) 来指示子项。使用下面的格式:drive:\location\child-location\...例如,若要将位置更改到 HKLM\Software 注册表项,请键入 Set-Location 命令,例如:set-location hklm:\software还可以使用位置的相对引用。点 (.) 表示当前位置。例如,如果您在 HKLM:\Software\Microsoft 注册表项中,并且要列出 HKLM:\Software\Micrsoft\PowerShell 项中的注册表子项,请键入以下命令:get-childitem .\powershell查找动态参数动态参数是由提供程序添加到 cmdlet 的 cmdlet 参数。这些参数只有在 cmdlet 与添加它们的提供程序一起使用时才可用。例如,Cert: 驱动器将 CodeSigningCert 参数添加到 Get-Item 和 Get-ChildItem cmdlet。只有在 Cert: 启动器中使用 Get-Item 或 Get-ChildItem 时,才可以使用此参数。若要查看提供程序所支持的动态参数的列表,请参阅提供程序的"帮助"文件。键入:get-help <provider-name>例如:get-help certificate了解提供程序虽然所有提供程序数据都出现在驱动器中,并且可以使用相同方法来浏览它们,但它们之间的相似性只有这些。提供程序所公开的数据存储多种多样,可以是 Active Directory 位置,也可以是 Microsoft Exchange Server 邮箱。有关各个 Windows PowerShell 提供程序的信息,请键入:get-help <ProviderName>例如:get-help registry如需获得有关提供程序的帮助主题的列表,请键入:get-help * -category provider        另请参阅about_Locationsabout_Path_Syntax

1、5  获取提供程序的帮助

  我们知道cmdlet都有一个提供程序来支持,同时整个系统的驱动器系统需要提供程序的支持。我们可以通过下面的命令来获取系统中提供程序的概要信息。

Exp:

PS C:\Users\vol_20120330> get-help -category  providerName                              Category  Synopsis
----                              --------  --------
WSMan                             Provider  提供对 Web Services for Management ...
Alias                             Provider  提供对 Windows PowerShell 别名以及它们所表示...
Environment                       Provider  提供对 Windows 环境变量的访问。
FileSystem                        Provider  提供对文件和目录的访问。
Function                          Provider  提供对 Windows PowerShell 中所定义函数的访问。
Registry                          Provider  提供从 Windows PowerShell 对系统注册表项和注...
Variable                          Provider  提供对 Windows PowerShell 变量及其值的访问。
Certificate                       Provider  提供对 X.509 证书存储和对 Windows PowerSh...

  通过上面的命令我们知道,系统中主要提供了: wsman、 alias、enviroment、filesystem、function、registry、variable和certificate共8中提供程序。我们可以

通过下面的命令形式获取不同的程序提供者的信息:

      get-help   提供程序名

Exp:

PS C:\Users\vol_20120330> get-help -name  certificate提供程序名称Certificate驱动器Cert:摘要提供对 X.509 证书存储和对 Windows PowerShell 中的证书的访问。说明Windows PowerShell 安全策略支持使用 Authenticode 签名和 X.509 编码的数字公钥证书对脚本进行签名。WindowsPowerShell 的签名功能并不完整,但这些功能允许用户对脚本进行签名,并允许 Windows PowerShell 识别已签名和未签名的脚本,以及确定脚本是否源自 Internet。Windows PowerShell 证书提供程序允许您在证书命名空间中进行导航并查看证书存储和证书。它还允许您复制、移动和删除证书和证书存储,并在 Microsoft 管理控制台 (MMC) 中打开证书管理单元。证书提供程序在 Windows PowerShell 中将证书命名空间公开为 Cert: 驱动器。Cert: 驱动器具有以下三个级别:-- 存储位置 (Microsoft.PowerShell.Commands.X509StoreLocation),它是对当前用户和所有用户证书进行分组的高级容器。每个系统具有一个 CurrentUser 和 LocalMachine(所有用户)存储位置。-- 证书存储区 (System.Security.Cryptography.X509Certificates.X509Store),它是保存和管理证书的物理存储区。-- X.509 证书 (System.Security.Cryptography.X509Certificates.X509Certificate2),其中每个证书表示计算机上的一个 X.509 证书。证书通过证书指纹进行识别。Windows PowerShell 证书提供程序支持 Set-Location、Get-Location、Get-Item、Get-ChildItem 和 Invoke-Item cmdlet。另外,包括证书提供程序的 Windows PowerShell 安全性管理单元 (Microsoft.PowerShell.Security) 还包括获取和设置 Authenticode 签名和获取证书的管理单元。要获取安全性管理单元中的 cmdlet 列表,请键入“get-command -module *security”。功能任务任务: 在 Cert: 驱动器中导航-------------------------- 示例 1 --------------------------此命令使用 Set-Location cmdlet 更改 Cert: 驱动器的当前位置。set-location cert:-------------------------- 示例 2 --------------------------此命令使用 Set-Location 命令将当前位置更改为 LocalMachine 存储位置中的 Root 证书存储。使用反斜杠 (\) 或正斜杠 (/) 指示 Cert: 驱动器的级别。set-location -path LocalMachine\Root如果您不在 Cert: 驱动器中,请在路径前面添加驱动器名称。任务: 显示 Cert: 驱动器的内容-------------------------- 示例 1 --------------------------此命令使用 Get-ChildItem cmdlet 显示 CurrentUser 证书存储位置中的证书存储。get-childitem -path cert:\CurrentUser如果您位于 Cert: 驱动器中,则可以省略驱动器名称。-------------------------- 示例 2 --------------------------此命令使用 Get-ChildItem cmdlet 显示 My 证书存储中的证书。get-childitem -path cert:\CurrentUser\My如果您位于 Cert: 驱动器中,则可以省略驱动器名称。-------------------------- 示例 3 --------------------------此命令使用 Get-Item cmdlet 获取“My”证书存储,并使用 Format-List 带通配符 (*) 的 Property 参数来显示存储的所有属性。get-item -path cert:\CurrentUser\My | format-list *-------------------------- 示例 4 --------------------------此命令获取证书并显示证书的所有属性。它使用 Get-ChildItem cmdlet 获取证书,并使用 Format-List 带通配符 (*) 的 Property 参数来显示证书的所有属性。证书通过证书指纹进行识别。get-childitem -path cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B | format-list -property *-------------------------- 示例 5 --------------------------此命令使用 Get-ChildItem cmdlet 获取计算机上的所有证书,并使用其 CodeSigningCert 动态参数来仅获取具有代码签名颁发机构的证书。get-childitem -path * -codesigningcert -recurse任务: 打开 MMC 证书管理单元-------------------------- 示例 1 --------------------------此命令打开 MMC 证书管理单元来管理指定的证书。invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE66B动态参数-CodeSigningCert <System.Management.Automation.SwitchParameter>仅获取那些具有代码签名颁发机构的证书。支持的 cmdlet: Get-Item, Get-ChildItem注释相关链接about_Providers about_Signing Get-AuthenticodeSignature Set-AuthenticodeSignature Get-PfxCertificate ______________________________________

1、6  获取脚本或者函数的相关帮助信息

  通过get-help cmdlet可以获取脚本和函数的相关帮组信息。其命令格式为:

      get-help    函数名

      get-helpl    脚本路径\脚本文件名

Exp:

PS C:\Users\vol_20120330> get-help a:
A: 

  注意: get-help  * 不能获取脚本、函数的帮助信息。

二、 管道和对象成员

2、1  管道

  在各种现代的shell中,均支持管道的概念。 管道的最大特点就是:  前一个命令的输出作为后一个命令的输入。cmd、bash均支持管道的概念,这里我就不多说了,下面我们说说PS中

管道的概念。

  在PS中,继承了cmd管道符号的表示方法:  |   表管道;但是PS与cmd的管道有本质的区别, cmd中的管道传递的是文本信息,而PS中传递的是对象,因此PS中的管道更加易于使用

和管理。

  例如:   get-location cmdlet命令返回的是一个pathinfo对象,这个对象是一个信息包,信息包中包含了相关的信息。

2、2 对象成员

  基于面向对象的概念,对象具有属性和方法;这些都可以认为是对象的成员, PS对象均具有众多的成员,为了查看这些成员,PS提供了一个获取对象成员的cmdlet: get-member。

我们可以利用get-member获取对象的成员信息。

Exp:

PS C:\Users\vol_20120330> get-location | get-memberTypeName: System.Management.Automation.PathInfoName         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}                      

  我们可以查看一下get-member支持那些参数:

PS C:\Users\vol_20120330> get-help  -parameter *  get-member-Force [<SwitchParameter>]向显示内容中添加固有成员(PSBase、PSAdapted、PSObject、PSTypeNames)以及编译器生成的 get_ 和 set_ 方法。默认情况下,Get-Member 会在除“Base”和“Adapted”之外的所有视图中获取这些属性,但不会显示它们。下面的列表描述了使用 Force 参数时添加的属性:-- PSBase:.NET Framework 对象的原始属性,无任何扩展或改编。这些是为对象类定义的属性并列在 MSDN 中。-- PSAdapted:在 Windows PowerShell 扩展类型系统中定义的属性和方法。-- PSExtended:在 Types.ps1xml 文件中添加的或使用 Add-Member cmdlet 添加的属性和方法。-- PSObject:将基对象转换为 Windows PowerShell PSObject 对象的适配器。-- PSTypeNames:按专指性顺序描述对象的对象类型的列表。设置对象格式时,Windows PowerShell 会在 Windows PowerShell 安装目录 ($pshome) 下的 Format.ps1xml 文件中搜索类型。它将使用找到的第一个类型的格式定义。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-InputObject <psobject>指定将检索其成员的对象。使用 InputObject 参数与通过管道将对象传递到 Get-Member 不同。区别如下:-- 通过管道将对象集合传递到 Get-Member 时,Get-Member 会获取集合中单个对象的成员,如整数数组中整数的属性。-- 使用 InputObject 提交对象集合时,Get-Member 会获取集合的成员,如整数数组中数组的属性。是否必需?                    False位置?                        named默认值                是否接受管道输入?            true (ByValue)是否接受通配符?              False-MemberType <PSMemberTypes>仅获取具有指定成员类型的成员。默认值为 All。此参数的有效值为:-- AliasProperty:一种可为现有属性定义新名称的属性。-- CodeMethod:一种可引用 .NET Framework 类的静态方法的方法。-- CodeProperty:一种可引用 .NET Framework 类的静态属性的属性。-- Event:指示对象将发送消息来指示某项操作或状态更改。-- MemberSet:属性和方法的预定义集合,如 PSBase、PSObject 和 PSTypeNames。-- Method:基础 .NET Framework 对象的方法。-- NoteProperty:具有静态值的属性。-- ParameterizedProperty:具有参数和参数值的属性。-- Property:基础 .NET Framework 对象的属性。-- PropertySet:对象属性的预定义集合。-- ScriptMethod:其值是脚本输出的方法。-- ScriptProperty:其值是脚本输出的属性。-- All:获取全部成员类型。-- Methods:获取对象的所有方法类型(如 Method、CodeMethod、ScriptMethod)。-- Properties:获取对象的所有类型的属性(如 Property、CodeProperty、AliasProperty、ScriptProperty)。并非所有对象都具有成员的全部类型。如果您指定该对象所不具有的成员类型,则 Windows PowerShell 会返回 null 值。若要获取相关类型的成员(如所有扩展成员),请使用 View 参数。如果将 MemberType 参数与 Static 或 View 参数一起使用,Get-Member 将获取同时属于这两个集合的成员。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-Name <string[]>指定对象的一个或多个属性或方法的名称。Get-Member 仅获取指定的属性和方法。如果将 Name 参数与 MemberType、View 或 Static 参数一起使用,Get-Member 将仅获取满足所有参数条件的成员。若要根据名称获取静态成员,请将 Static 参数与 Name 参数一起使用。是否必需?                    False位置?                        1默认值                是否接受管道输入?            false是否接受通配符?              False-Static [<SwitchParameter>]仅获取对象的静态属性和方法。将在对象的类上定义静态属性和方法,而不是在类的任何特定实例上定义。如果将 Static 参数与 View 参数一起使用,将忽略 View 参数。如果将 Static 参数与 MemberType 参数一起使用,Get-Member 将仅获取同时属于这两个集合的成员。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False-View <PSMemberViewTypes>仅获取特定类型的成员(属性和方法)。指定一个或多个值。默认值是“Adapted, Extended”。有效值包括:-- Base:仅获取 .NET Framework 对象的原始属性和方法(无任何扩展或改编)。-- Adapted:仅获取 Windows PowerShell 扩展类型系统中定义的属性和方法。-- Extended:仅获取在 Types.ps1xml 文件中添加的或使用 Add-Member cmdlet 添加的属性和方法。-- All:获取 Base、Adapted 和 Extended 视图中的成员。View 参数确定检索到的成员,而不只是这些成员的显示方式。若要获取特定成员类型(如脚本属性),请使用 MemberType 参数。如果在同一命令中使用 MemberType 和 View 参数,Get-Member 将获取同时属于这两个集合的成员。如果在同一命令中使用 Static 和 View 参数,将忽略 View 参数。是否必需?                    False位置?                        named默认值                是否接受管道输入?            false是否接受通配符?              False

  可以发现get-member cmdlet支持:force、inputobject、membertype、name、static、view这些参数。 下面我们简要的利用一下这些参数

Exp:获取对象的静态方法和属性

PS C:\Users\vol_20120330> get-location | get-member  -staticTypeName: System.Management.Automation.PathInfoName            MemberType Definition
----            ---------- ----------
Equals          Method     static bool Equals(System.Object objA, System.Obj...
ReferenceEquals Method     static bool ReferenceEquals(System.Object objA, S...

Exp: 获取对象的属性

PS C:\Users\vol_20120330> get-location | get-member  -membertype  propertyTypeName: System.Management.Automation.PathInfoName         MemberType Definition
----         ---------- ----------
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}                      

Exp:获取对象特定的成员, 湖区.Net Framwork 的原始属性和方法

PS C:\Users\vol_20120330> get-location | get-member  -view  baseTypeName: System.Management.Automation.PathInfoName         MemberType Definition
----         ---------- ----------
Equals       Method     bool Equals(System.Object obj)
GetHashCode  Method     int GetHashCode()
GetType      Method     type GetType()
ToString     Method     string ToString()
Drive        Property   System.Management.Automation.PSDriveInfo Drive {get;}
Path         Property   System.String Path {get;}
Provider     Property   System.Management.Automation.ProviderInfo Provider {...
ProviderPath Property   System.String ProviderPath {get;}                      

三、格式化输出

  前面的文章中提到过部分关于格式化的内容,这里进一步进行介绍。

  PS支持4个格式化cmdlet:  format-wide、 format-list、format-table、format-custom; 这里仅介绍前面三个。

  四个命令均需要管道输出对象作为输入;四个cmdlet均有默认的输出属性,如果不进行指定,则输出默认的属性。

3、1  format-wide  

  格式化命令默认输出不同数量的属性,format-wide默认仅输出一个默认属性。

Exp:

PS C:\Users\vol_20120330> get-command  | format-wide%                                       ?
A:                                      ac
Add-Computer                            Add-Content
Add-History                             Add-Member
Add-PSSnapin                            Add-Type
asnp                                    B:
C:                                      cat
cd                                      cd..
cd\                                     chdir
Checkpoint-Computer                     clc
clear                                   Clear-Content
Clear-EventLog                          Clear-History
Clear-Host                              Clear-Item
Clear-ItemProperty                      Clear-Variable
clhy                                    cli
clp                                     cls
clv                                     compare
Compare-Object                          Complete-Transaction
Connect-WSMan                           ConvertFrom-Csv
ConvertFrom-SecureString                ConvertFrom-StringData
Convert-Path                            ConvertTo-Csv
ConvertTo-Html                          ConvertTo-SecureString
ConvertTo-Xml                           copy
Copy-Item                               Copy-ItemProperty
cp                                      cpi
cpp                                     cvpa
D:                                      dbp
Debug-Process                           del
diff                                    dir
Disable-ComputerRestore                 Disable-PSBreakpoint
Disable-PSRemoting                      Disable-PSSessionConfiguration
Disable-WSManCredSSP                    Disconnect-WSMan
E:                                      ebp
echo                                    Enable-ComputerRestore
Enable-PSBreakpoint                     Enable-PSRemoting
Enable-PSSessionConfiguration           Enable-WSManCredSSP
Enter-PSSession                         epal
epcsv                                   epsn
erase                                   etsn
Exit-PSSession                          Export-Alias
Export-Clixml                           Export-Console
Export-Counter                          Export-Csv
Export-FormatData                       Export-ModuleMember
Export-PSSession                        exsn
F:                                      fc
fl                                      foreach
ForEach-Object                          Format-Custom
Format-List                             Format-Table
Format-Wide                             ft
fw                                      G:
gal                                     gbp
gc                                      gci
gcm                                     gcs
gdr                                     Get-Acl
Get-Alias                               Get-AuthenticodeSignature
Get-ChildItem                           Get-Command
Get-ComputerRestorePoint                Get-Content
Get-Counter                             Get-Credential
Get-Culture                             Get-Date
Get-Event                               Get-EventLog
Get-EventSubscriber                     Get-ExecutionPolicy
Get-FormatData                          Get-Help
Get-History                             Get-Host
Get-HotFix                              Get-Item
Get-ItemProperty                        Get-Job
Get-Location                            Get-Member
Get-Module                              Get-PfxCertificate
Get-Process                             Get-PSBreakpoint
Get-PSCallStack                         Get-PSDrive
Get-PSProvider                          Get-PSSession
Get-PSSessionConfiguration              Get-PSSnapin
Get-Random                              Get-Service
Get-TraceSource                         Get-Transaction
Get-UICulture                           Get-Unique
Get-Variable                            Get-Verb
Get-WinEvent                            Get-WmiObject
Get-WSManCredSSP                        Get-WSManInstance
ghy                                     gi
gjb                                     gl
gm                                      gmo
gp                                      gps
group                                   Group-Object
gsn                                     gsnp
gsv                                     gu
gv                                      gwmi
h                                       H:
help                                    history
I:                                      icm
iex                                     ihy
ii                                      Import-Alias
Import-Clixml                           Import-Counter
Import-Csv                              Import-LocalizedData
Import-Module                           Import-PSSession
ImportSystemModules                     Invoke-Command
Invoke-Expression                       Invoke-History
Invoke-Item                             Invoke-WmiMethod
Invoke-WSManAction                      ipal
ipcsv                                   ipmo
ipsn                                    ise
iwmi                                    J:
Join-Path                               K:
kill                                    L:
Limit-EventLog                          lp
ls                                      M:
man                                     md
measure                                 Measure-Command
Measure-Object                          mi
mkdir                                   more
mount                                   move
Move-Item                               Move-ItemProperty
mp                                      mv
N:                                      nal
ndr                                     New-Alias
New-Event                               New-EventLog
New-Item                                New-ItemProperty
New-Module                              New-ModuleManifest
New-Object                              New-PSDrive
New-PSSession                           New-PSSessionOption
New-Service                             New-TimeSpan
New-Variable                            New-WebServiceProxy
New-WSManInstance                       New-WSManSessionOption
ni                                      nmo
nsn                                     nv
O:                                      ogv
oh                                      Out-Default
Out-File                                Out-GridView
Out-Host                                Out-Null
Out-Printer                             Out-String
P:                                      popd
Pop-Location                            prompt
ps                                      psEdit
pushd                                   Push-Location
pwd                                     Q:
r                                       R:
rbp                                     rcjb
rd                                      rdr
Read-Host                               Receive-Job
Register-EngineEvent                    Register-ObjectEvent
Register-PSSessionConfiguration         Register-WmiEvent
Remove-Computer                         Remove-Event
Remove-EventLog                         Remove-Item
Remove-ItemProperty                     Remove-Job
Remove-Module                           Remove-PSBreakpoint
Remove-PSDrive                          Remove-PSSession
Remove-PSSnapin                         Remove-Variable
Remove-WmiObject                        Remove-WSManInstance
ren                                     Rename-Item
Rename-ItemProperty                     Reset-ComputerMachinePassword
Resolve-Path                            Restart-Computer
Restart-Service                         Restore-Computer
Resume-Service                          ri
rjb                                     rm
rmdir                                   rmo
rni                                     rnp
rp                                      rsn
rsnp                                    rv
rvpa                                    rwmi
S:                                      sajb
sal                                     saps
sasv                                    sbp
sc                                      select
Select-Object                           Select-String
Select-Xml                              Send-MailMessage
set                                     Set-Acl
Set-Alias                               Set-AuthenticodeSignature
Set-Content                             Set-Date
Set-ExecutionPolicy                     Set-Item
Set-ItemProperty                        Set-Location
Set-PSBreakpoint                        Set-PSDebug
Set-PSSessionConfiguration              Set-Service
Set-StrictMode                          Set-TraceSource
Set-Variable                            Set-WmiInstance
Set-WSManInstance                       Set-WSManQuickConfig
Show-EventLog                           si
sl                                      sleep
sort                                    Sort-Object
sp                                      spjb
Split-Path                              spps
spsv                                    start
Start-Job                               Start-Process
Start-Service                           Start-Sleep
Start-Transaction                       Start-Transcript
Stop-Computer                           Stop-Job
Stop-Process                            Stop-Service
Stop-Transcript                         Suspend-Service
sv                                      swmi
T:                                      TabExpansion
tee                                     Tee-Object
Test-ComputerSecureChannel              Test-Connection
Test-ModuleManifest                     Test-Path
Test-WSMan                              Trace-Command
type                                    U:
Undo-Transaction                        Unregister-Event
Unregister-PSSessionConfiguration       Update-FormatData
Update-List                             Update-TypeData
Use-Transaction                         V:
W:                                      Wait-Event
Wait-Job                                Wait-Process
where                                   Where-Object
wjb                                     write
Write-Debug                             Write-Error
Write-EventLog                          Write-Host
Write-Output                            Write-Progress
Write-Verbose                           Write-Warning
X:                                      Y:
Z:                                                                             

   这里我们发现,format-wide仅输出了name项。那么我们如果要输出别的项怎么办呢? 此时可以利用format-wide的 -property。

Exp: 利用format-wide 的property参数输出comandtype信息。

PS C:\Users\vol_20120330> get-command  | format-wide -property  commandtypeAlias                                   Alias
Function                                Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Function
Function                                Alias
Alias                                   Function
Function                                Alias
Cmdlet                                  Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Function                                Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Cmdlet                                  Cmdlet
Alias                                   Alias
Alias                                   Alias
Function                                Alias
Cmdlet                                  Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Function                                Cmdlet
Cmdlet                                  Cmdlet
Function                                Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Alias                                   Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Function                                Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Alias                                   Function
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Function
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Cmdlet
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Function
Function                                Alias
Function                                Alias
Alias                                   Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Function                                Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Function
Cmdlet                                  Function
Alias                                   Function
Cmdlet                                  Alias
Alias                                   Function
Alias                                   Alias
Alias                                   Cmdlet
Cmdlet                                  Alias
Function                                Function
Alias                                   Alias
Cmdlet                                  Cmdlet
Alias                                   Alias
Function                                Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Alias
Alias                                   Alias
Function                                Alias
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Function                                Alias
Cmdlet                                  Function
Alias                                   Function
Alias                                   Cmdlet
Alias                                   Function
Alias                                   Function
Alias                                   Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Function                                Alias
Alias                                   Alias
Alias                                   Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Alias
Alias                                   Alias
Alias                                   Cmdlet
Alias                                   Alias
Cmdlet                                  Alias
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Alias
Function                                Function
Alias                                   Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Function
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Function
Function                                Cmdlet
Cmdlet                                  Cmdlet
Alias                                   Cmdlet
Alias                                   Alias
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Cmdlet                                  Cmdlet
Function                                Function
Function  

  我们还可以对format-wide的输出格式进一步进行格式化,可以指定输出的列数。

Exp: 通过colum参数指定输出的列数

PS C:\Users\vol_20120330> get-command  | format-wide -property  commandtype   -colum   6Alias         Alias         Function     Alias        Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Alias        Function
Function      Alias         Alias        Function     Function     Alias
Cmdlet        Alias         Alias        Cmdlet       Cmdlet       Cmdlet
Function      Cmdlet        Cmdlet       Cmdlet       Alias        Alias
Alias         Alias         Alias        Alias        Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Alias        Cmdlet       Cmdlet
Alias         Alias         Alias        Alias        Function     Alias
Cmdlet        Alias         Alias        Alias        Cmdlet       Cmdlet
Function      Cmdlet        Cmdlet       Cmdlet       Function     Alias
Alias         Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Alias         Alias        Alias        Alias        Alias
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Alias        Function     Alias
Alias         Alias         Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Alias         Alias        Function     Alias        Alias
Alias         Alias         Alias        Alias        Alias        Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Function
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Alias        Alias
Alias         Alias         Alias        Alias        Alias        Alias
Alias         Cmdlet        Alias        Alias        Alias        Alias
Alias         Alias         Alias        Function     Function     Alias
Function      Alias         Alias        Alias        Alias        Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Function      Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Alias         Alias        Alias        Alias        Alias
Alias         Function      Cmdlet       Function     Alias        Function
Cmdlet        Alias         Alias        Function     Alias        Alias
Alias         Cmdlet        Cmdlet       Alias        Function     Function
Alias         Alias         Cmdlet       Cmdlet       Alias        Alias
Function      Alias         Alias        Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Alias        Alias        Alias        Alias
Function      Alias         Alias        Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Function     Alias
Cmdlet        Function      Alias        Function     Alias        Cmdlet
Alias         Function      Alias        Function     Alias        Alias
Alias         Alias         Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Alias        Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Alias         Alias        Alias        Alias        Alias
Alias         Alias         Alias        Alias        Alias        Alias
Alias         Alias         Function     Alias        Alias        Alias
Alias         Alias         Alias        Alias        Cmdlet       Cmdlet
Cmdlet        Cmdlet        Alias        Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Alias
Alias         Alias         Alias        Cmdlet       Alias        Alias
Cmdlet        Alias         Alias        Alias        Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Alias        Alias
Function      Function      Alias        Cmdlet       Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Alias        Function
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Cmdlet        Function      Function     Cmdlet       Cmdlet       Cmdlet
Alias         Cmdlet        Alias        Alias        Cmdlet       Cmdlet
Cmdlet        Cmdlet        Cmdlet       Cmdlet       Cmdlet       Cmdlet
Function      Function      Function                                           

3、2 format-list

  format-list以列表的形式输出信息,这里主要介绍两个特点

3、2、1  format-list的 property参数可以指定输出的属性多少

Exp:

PS C:\Users\vol_20120330> get-location | format-listDrive        : C
Provider     : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Users\vol_20120330
Path         : C:\Users\vol_20120330

Exp:  通过property参数仅输出path属性

PS C:\Users\vol_20120330> get-location | format-list -property  pathPath : C:\Users\vol_20120330

3、2、2  利用 * 输出所有属性

PS C:\Users\vol_20120330> get-location | format-list -property *

Drive : C
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Users\vol_20120330
Path : C:\Users\vol_20120330

3、3  format-table

  format-table以表格的形式输出信息。

Exp:利用format-table格式化输出当前路径信息

PS C:\Users\vol_20120330> get-location | format-tablePath
----
C:\Users\vol_20120330  

  乍一看,这个输出的信息量减少了, 其实这都是默认输出属性的原因,我们可以通过参数来控制输出。

Exp:

____________________________________________________________________________
PS C:\Users\vol_20120330> get-process | format-tableHandles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------          117       5     4924       1540   111     0.02   2900 acrotray             131       5    15904       7696    45            1036 audiodg              185       9    11704       3036   119            1580 BSQLServer           135      11    35580      14872   155    13.88   3780 chrome               910      26    52736      85220   313   268.93   4316 chrome               139      21   195280     162376   307   251.61   4500 chrome               176       8     7316       3900   166    20.76   4772 chrome               158      16    94648      71892   213   104.15   4948 chrome               730      17    80972      42784   320    89.81   5760 chrome               122       5     3436       2244   122     0.12   2824 conhost              533       6     1408       1208    69             432 csrss                552      11     2292       9128   227             516 csrss                126       8    32976      17836   119   271.49   2628 dwm                  170       9     5304       5260   139     0.94   2916 egui                 382      15    74732      54832   172            1732 ekrn                 780      39    31624      15112   263    31.54   2668 explorer             247      12    44640      25340   219   275.76    820 Foxit Reader         0       0        0         24     0               0 Idle                 444      25    23444      16692   253   102.46   3848 iku                  489      53    36164      29580   210   117.62   4016 ikuacc               328      14     8760       6084   197     0.51   3868 ikucmc               764      14     3400       3816    34             616 lsass                144       4     1516       1636    18             624 lsm                  464      24   164724     130944   471   296.96   6084 powershell_ise       150       6    11892       3804   119            5604 PresentationFontCache818      28   102380      28340   341   672.15   5944 QQPlayer             127       7     6732       2564   134     0.58   3456 rundll32             666      19    29068      17500   129            3656 SearchIndexer        269       9     5308       3900    44             564 services             33       1      316        300     4             328 smss                 153       6     3268       3820    68     0.34   2952 SogouCloud           322      11     5160       3128    75            1412 spoolsv              381      15    44840       2944  1524            1808 sqlservr             87       4     1460       1452    30            1892 sqlwriter            374       7     3060       3224    43             732 svchost              339      10     3364       3156    31             812 svchost              512      13    14608       8320    63             904 svchost              718      20    50532      45520   135             936 svchost              1274      31    19076      14960   146             964 svchost              286      10     3636       2744    34            1112 svchost              463      17    11640       5816    68            1252 svchost              322      25     9780       5032    51            1500 svchost              105       4     1416       1388    29            1932 svchost              128       8     1904       1416    29            2300 svchost              236      12     3552       3188    66            2640 svchost              332      19    77552       8588   145            3088 svchost              218       8    11844       4432   133    58.50   2880 SynTPEnh             101       4     2504       1300   106            3572 SynTPHelper          125       5     5136       1268   110     0.05   3252 SynTPLpr             627       0       48        364     2               4 System               131       5     3004       7164   108            3840 taskeng              255      10     8252       3152   128     0.39   2788 taskhost             170       8     4720       9868    71            5156 taskhost             83       5     1140       1212    43             508 wininit              116       4     2216       1164    49             596 winlogon             216       7     9156      14044    66            1900 WmiPrvSE             447      26     7680       7144   123            2064 wmpnetwk             198       5     1536       1408    34            2344 WUDFHost  

3、3、1 利用property参数控制输出的属性

Exp:

PS C:\Users\vol_20120330> get-process | format-table  -property  path,cpu,id,pmPath                                CPU                  Id                  PM
----                                ---                  --                  --
C:\Program Files...           0.0156001                2900             50421761036            162856961580            11984896
C:\Users\vol_201...           13.884089                3780            36433920
C:\Users\vol_201...         270.6929352                4316            54067200
C:\Users\vol_201...         256.1068417                4500           181755904
C:\Users\vol_201...          20.9821345                4772             7495680
C:\Users\vol_201...         104.8794723                4948            95870976
C:\Users\vol_201...          89.9189764                5760            82915328
C:\Windows\syste...           0.1248008                2824             3518464432             1441792516             2347008
C:\Windows\syste...         272.8145488                2628            33767424
C:\Program Files...            0.936006                2916             54312961732            76525568
C:\Windows\Explo...          31.6994032                2668            32452608
C:\Program Files...         275.7629677                 820            457113600                   0
C:\Program Files...         102.7734588                3848            24023040
C:\Program Files...         118.2799582                4016            37036032
C:\Program Files...           0.5148033                3868             8970240616             3481600624             1597440
C:\Windows\syste...         305.0755556                6084           1691361285604            12177408
C:\Program Files...         676.9351393                5944           104837120
C:\Windows\syste...           0.5772037                3456             68935683656            29736960564             5378048328              323584
C:\Program Files...           0.3432022                2952             33464321412             52838401808            459161601892             1495040732             3133440812             3444736904            14987264936            52178944964            195338241112             37232641252            119193601500            100147201932             14499842300             19496962640             34938883088            79384576
C:\Program Files...          59.4207809                2880            121282563572             2564096
C:\Program Files...           0.0468003                3252             52592644               491523840             3076096
C:\Windows\syste...           0.3900025                2788             84500485156             4833280508             1167360596             22691841900             93757442064             78848002344             1572864________________________

  可以发现通过使用property参数,可以输出默认没有的path属性,同时将其他一些属性忽略了。我们还发现path属性输出的时候么有完整的信息,

这样不利于我们查看,有没有办法全部将其输出呢? 答案是:有,通过Autosize参数就可以实现。

3、3、2  autosize参数

Exp:利用autosize参数将path属性完整输出

PS C:\Users\vol_20120330> get-process | format-table  -property  path,cpu,id,pm   -autosize警告: 2 个列无法显示,已被删除。Path                                                                        CPU
----                                                                        ---
C:\Program Files\Adobe\Acrobat 9.0\Acrobat\acrotray.exe                  ...001C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...902
C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...647
C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...199
C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...352
C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...845
C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe ...774
C:\Windows\system32\conhost.exe                                          ...008C:\Windows\system32\Dwm.exe                                              ...648
C:\Program Files\ESET\ESET Smart Security\egui.exe                       ...006C:\Windows\Explorer.EXE                                                  ...047
C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe            ...677C:\Program Files\YouKu\iku2\iku.exe                                      ...612
C:\Program Files\YouKu\common\ikuacc.exe                                 ...649
C:\Program Files\YouKu\common\ikucmc.exe                                 ...033C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe            ...806C:\Program Files\Tencent\QQPlayer\QQPlayer.exe                           ...942
C:\Windows\system32\rundll32.exe                                         ...037C:\Program Files\SogouInput\6.1.0.6700\SogouCloud.exe                    ...022C:\Program Files\Synaptics\SynTP\SynTPEnh.exe                            ...899C:\Program Files\Synaptics\SynTP\SynTPLpr.exe                            ...003C:\Windows\system32\taskhost.exe    

  我们发现path完整输出了,但是其他的信息就被忽略了,PS默认最前输出的列最重要,而后面输出的相对不重要,当不能完整输出的时候,就将不重要的信息省略。

3、3、3  wrap参数

  wrap参数用来将输出信息换行输出。

PS C:\Users\vol_20120330> get-process | format-table  -property  cpu,id,pm,path   -wrapCPU                  Id                  PM Path               ---                  --                  -- ----               0.0156001                2900             5042176 C:\Program Files\Adobe\Acrobat 9.0\Acrobat\acrotray.exe  1036            16285696                    1580            11984896                    14.2740915                3780            36433920 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    284.3430227                4316            54341632 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    280.0841954                4500           240979968 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    21.2785364                4772             7495680 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    107.0790864                4948            96923648 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    90.2153783                5760            82915328 C:\Users\vol_20120330\AppData\Local\Google\Chrome\Application\chrome.exe    0.1248008                2824             3518464 C:\Windows\system32\conhost.exe       432             1441792                    516             2351104                    277.7129802                2628            33771520 C:\Windows\system32\Dwm.exe           0.936006                2916             5431296 C:\Program Files\ESET\ESET Smart Security\egui.exe       1732            76525568                    32.136206                2668            32382976 C:\Windows\Explorer.EXE               275.7785678                 820            45711360 C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe               0                   0                    103.9746665                3848            24006656 C:\Program Files\YouKu\iku2\iku.exe   121.1035763                4016            32854016 C:\Program Files\YouKu\common\ikuacc.exe                 0.5148033                3868             8970240 C:\Program Files\YouKu\common\ikucmc.exe                 616             3481600                    624             1552384                    318.6320425                6084           169525248 C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe               5604            12177408                    696.0452618                5944           105066496 C:\Program Files\Tencent\QQPlayer\QQPlayer.exe           0.5772037                3456             6893568 C:\Windows\system32\rundll32.exe      3656            27095040                    564             5406720                    328              323584                    0.3588023                2952             3346432 C:\Program Files\SogouInput\6.1.0.6700\SogouCloud.exe    1412             5283840                    1808            45916160                    1892             1495040                    732             3133440                    812             3416064                    904            14987264                    936            52178944                    964            19566592                    1112             3723264                    1252            11919360                    1500            10014720                    1932             1449984                    2300             1949696                    2640             3493888                    3088            79384576                    62.0727979                2880            12128256 C:\Program Files\Synaptics\SynTP\SynTPEnh.exe            3572             2564096                    0.0468003                3252             5259264 C:\Program Files\Synaptics\SynTP\SynTPLpr.exe            4               49152                    0.3900025                2788             8478720 C:\Windows\system32\taskhost.exe      508             1167360                    596             2269184                    1900             9539584                    2064             7864320                    2344             1572864                    

  可以发现最后一列path的输出wrap输出了。

3、3、4  groupby参数

  format-table 通过groupby参数还支持分组输出,实现选择功能。这里就不举例了。

4、小结

  可以发现PS的帮助系统功能很强大,而且其管道功能也很强大。

  格式化输出命令基于对象属性,使用最多的参数是property。

  待续..................

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输相关推荐

  1. PowerShell_6_零基础自学课程__6_PS中获取帮助信息详解、管道、格式化输

    前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-comm ...

  2. PowerShell_零基础自学课程_1_初识PowerShell

    欢迎转载本系列文章:转载请注明出处:www.cnblogs.com/volcanol 自从微软推出.Net以来,微软旗下的windows体系就发生了很大的变化,首先是操作系统的界面的变化,例如vist ...

  3. PowerShell_零基础自学课程_8_高级主题:WMI对象和COM组件

    本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...

  4. [python opencv 计算机视觉零基础到实战] 四、了解色彩空间及其详解

    一.学习目标 了解什么是色彩空间 了解opencv中色彩空间的转换 目录 [python opencv 计算机视觉零基础到实战] 一.opencv的helloworld [[python opencv ...

  5. crashdumpandroid_Android 中Crash时如何获取异常信息详解及实例

    Android 中Crash时如何获取异常信息详解 前言: 大家都知道,Android应用不可避免的会发生crash,无论你的程序写的多完美,总是无法完全避免crash的发生,可能是由于Android ...

  6. PowerShell_5_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

    据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件 ...

  7. Node.js零基础自学(持续更新中)

    1. Node.js时基于Chrome V8 引擎的JavaScript运行环境.官网:Node.jsNode.js® is a JavaScript runtime built on Chrome' ...

  8. PowerShell_8_零基础自学课程_8_高级主题:WMI对象和COM组件

    本系列文章从最初的初识开始,基本上可以完成一些简单的系统管理了,为了更方便的管理系统,同时为了更好的发掘系统的性能,就需要用到系统提供 的一些高级特性,在Windows Server系列的OS中,如果 ...

  9. Mybatis零基础教程,Java访问数据库核心操作,详解Spring-boot整合Mybatis持久层!

    1.前言 持久层是JavaEE中访问数据库的核心操作,Mybatis是一款优秀的持久层框架,诞生于2010年,2013年迁移至Github.它支持定制化 SQL.存储过程以及高级映射.MyBatis ...

最新文章

  1. 扎克伯格亲自做了26张PPT,员工效率提10倍,已被疯狂传阅
  2. What are HANA's models of cloud computing, and which should I choose?
  3. KlayGE 4.3开发计划
  4. Microsoft Build 2016 Day 1 记录
  5. 【Android开发】毛玻璃效果
  6. Your CPU supports instructions that this TensorFlow binary was not compiled to use AVX AVX2
  7. 实训09.11:java重点内容介绍
  8. 【HDU - 5883】The Best Path(判断欧拉回路)
  9. resnet系列+mobilenet v2+pytorch代码实现
  10. Java中什么时候throws_何时在Java方法声明中使用throws?
  11. 利用ros3d.js实现 turtlebot3 在web 端显示并导航
  12. SQL2005安装及链接
  13. Excel加载“宏”
  14. 计算机PS个人规划目标,这里有一份PS个人陈述写作规划
  15. win7计算机出现空白图标,Win7系统桌面图标显示异常变未知白色图标解决方法大全...
  16. 使用基于迭代的敏捷创建里程碑
  17. HDU 4699 Editor(双向链表)
  18. Qt5 QFileDialog中文英文交界处乱码问题
  19. 关于阿里云服务器密码重置和使用方法
  20. 基于Java的乐嘉网络商城系统(毕设)

热门文章

  1. python hook 微信_python实现微信跳一跳辅助工具步骤详解
  2. 三大运营商大数据运用
  3. AI算法实现武侠小说中的“绝世武功”——动作残影特效!
  4. PHP JWT token加密
  5. 更改MYSQL 单字段存储最大空间
  6. 腾讯云游戏使用方法(不需要下载客户端就可以玩英雄联盟)(旧电脑玩英雄联盟方法)
  7. HDU 2516 取石子游戏 斐波那契博弈
  8. 果汁机霍尔开关 MH251(原装正版)+双节升压充电 远翔FP6291(原装正版)
  9. 我需要几个变量来记录游戏声音大小,游戏音效大小,游戏是否静音,请帮我给这些变量取名...
  10. 【达摩院OpenVI】老片图像上色,一键开源体验