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

时间:2021-01-20 08:08:03

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

一、获取帮助信息

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

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

1、1  -? 参数

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> copy-item -?

名称
Copy-Item 摘要
将项从一个位置复制到命名空间内的另一个位置。 语法
Copy-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Container]
[-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-For
ce] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-Use
Transaction] [<CommonParameters>] Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Crede
ntial <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-I
nclude <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransac
tion] [<CommonParameters>] 说明
Copy-Item cmdlet 将项从一个位置复制到命名空间中的另一个位置。Copy-Item 不会删除所复制的项。该 cmdlet 可复制的特定项
取决于可用的 Windows PowerShell 提供程序。例如,与 FileSystem 提供程序一起使用时,它可以复制文件和目录;与 Regis
try 提供程序一起使用时,它可以复制注册表项。 相关链接
Online version: http://go.microsoft.com/fwlink/?LinkID=113292
about_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".
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

       get-command  -noun  item

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-command -noun  item

CommandType     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[]> ...
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

      get-command -verb  copy

Exp:

PS C:\Users\vol_20120330> get-command -verb copy

CommandType     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:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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]
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-command   -commandtype   alias

CommandType     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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

1、3 获取详细帮助

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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_Obj
ects”)或别名(如“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 Deve
loper Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.com/fwlin
k/?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 的 P
ath 参数来指定提供程序路径。有关详细信息,请参阅 about_Providers。 是否必需? False
位置? named
默认值
是否接受管道输入? false
是否接受通配符? False -Role <string[]>
显示为指定的用户角色自定义的帮助。输入一个角色。允许使用通配符。 输入用户在组织中担任的职位。某些 cmdlet 可以根据此参数的值在其帮助文件中显示不同的文本。此参数不影响核心 cmdlet 的帮助。 是否必需? False
位置? named
默认值
是否接受管道输入? false
是否接受通配符? False
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

1、3、1 full参数

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

1、3、2  detailed参数

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-help  get-help -detailed

名称
Get-Help 摘要
显示有关 Windows PowerShell 命令和概念的信息。 语法
Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <str
ing[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <stri
ng[]>] [<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-he
lp 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 对象的一个属性。此参数不影响概念性(“Abo
ut_”)帮助的显示。 -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 地址(统一资源标识符 [UR
I])。仅当帮助主题包含以“Http”或“Https”开头的 URI 并且系统上已安装 Internet 浏览器时,此参数才适用。 有关在您编写的帮助主题中支持该功能的信息,请参阅 about_Comment_Based_Help,另请参阅 MSDN (Microsoft
Developer Network) Library 中的“如何编写 Cmdlet 帮助”,网址是 http://go.microsoft.c
om/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-alias C:\PS>help get-alias C:\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 -patte
rn 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:\DataCollection NAME
Get-Item SYNOPSIS
Gets a collection of Server objects for the local computer and any comp
uters to which you have made a SQL Server PowerShell connection.
... C:\PS> cd SQLSERVER:\DataCollection
C:\PS> SQLSERVER:\DataCollection> get-help get-item NAME
Get-Item SYNOPSIS
Gets a collection of Server objects for the local computer and any comp
uters to which you have made a SQL Server PowerShell connection.
... C:\PS> Get-Item NAME
Get-Item SYNOPSIS
Gets the item at the specified location. ... 说明
-----------
此示例说明如何获取 Get-Item cmdlet 的帮助,了解如何在 Windows PowerShell SQL Server 提供程序的 Dat
aCollection 节点中使用该 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". ____________________________________________________________________________
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

1、3、3  examples参数

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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 Restricted Set-ExecutionPolicy : Windows PowerShell updated your local preference succ
essfully, but the setting is overridden by the group policy applied to your
system. Due to the override, your shell will retain its current effective
execution policy of "AllSigned". Contact your group policy administrator fo
r more information.
At line:1 char:20
+ set-executionpolicy <<<< restricted 说明
-----------
此命令尝试将 shell 的执行策略设置为“Restricted”。向注册表中写入了“Restricted”设置,但是,由于它与组策略冲突,因此该设置
无效,即使该设置比组策略的限制更严格也是如此。 -------------------------- 示例 3 -------------------------- C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpoli
cy} | set-executionpolicy -force 说明
-----------
此命令从远程计算机获取执行策略并将该策略应用于本地计算机。 此命令使用 Invoke-Command cmdlet 向远程计算机发送命令。由于可以通过管道将 ExecutionPolicy (Microsoft
.PowerShell.ExecutionPolicy) 对象传递到 Set-ExecutionPolicy,因此此命令不需要 ExecutionPo
licy 参数。 该命令具有 Force 参数,该参数可禁止显示用户提示。 -------------------------- 示例 4 -------------------------- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -fo
rce C:\PS> get-executionpolicy -list Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser AllSigned
LocalMachine RemoteSigned C:\PS> get-executionpolicy
AllSigned 说明
-----------
此示例演示如何设置特定作用域的执行策略。 第一个命令使用 Set-ExecutionPolicy cmdlet 设置当前用户的 AllSigned 的执行策略。它使用 Force 参数禁止显示
用户提示。 第二个命令使用 Get-ExecutionPolicy 的 List 参数获取每个作用域中设置的执行策略。结果显示,为当前用户设置的执行策略不同于为计
算机的所有用户设置的执行策略。 第三个命令使用不带参数的 Get-ExecutionPolicy cmdlet 获取本地计算机上的当前用户的有效执行策略。结果证明,为当前用户设置的执
行策略优先于为所有用户设置的执行策略。 -------------------------- 示例 5 -------------------------- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined 说明
-----------
此命令使用执行策略值 Undefined 有效删除为当前用户作用域设置的执行策略。结果,在组策略或 LocalMachine(所有用户)作用域中设置的
执行策略是有效的。 如果将所有作用域中的执行策略设置为 Undefined 并且未设置组策略,则默认的执行策略 Restricted 对计算机的所有用户都是有效的。
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

1、3、4  category参数

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-help -category  alias

Name                              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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

1、3、5  parameter参数

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-help get-help  -parameter  parameter

-Parameter <string>
只显示指定参数的详细说明。允许使用通配符。 此参数不影响概念性(“About_”)帮助的显示。 是否必需? False
位置? named
默认值
是否接受管道输入? false
是否接受通配符? False
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

1、3、6  online参数

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

Exp:

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

1、4  获取概念性帮助

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
____________________________________________________________________________
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> -detailed CHILDITEM CMDLET
Get-ChildItem CONTENT CMDLET
Add-Content
Clear-Content
Get-Content
Set-Content ITEM CMDLET
Clear-Item
Copy-Item
Get-Item
Invoke-Item
Move-Item
New-Item
Remove-Item
Rename-Item
Set-Item ITEMPROPERTY CMDLET
Clear-ItemProperty
Copy-ItemProperty
Get-ItemProperty
Move-ItemProperty
New-ItemProperty
Remove-ItemProperty
Rename-ItemProperty
Set-ItemProperty LOCATION CMDLET
Get-Location
Pop-Location
Push-Location
Set-Location PATH CMDLET
Join-Path
Convert-Path
Split-Path
Resolve-Path
Test-Path PSDRIVE CMDLET
Get-PSDrive
New-PSDrive
Remove-PSDrive PSPROVIDER CMDLET
Get-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_Locations
about_Path_Syntax
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-help -category  provider

Name                              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...
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

      get-help   提供程序名

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-help -name  certificate

提供程序名称
Certificate 驱动器
Cert: 摘要
提供对 X.509 证书存储和对 Windows PowerShell 中的证书的访问。 说明
Windows PowerShell 安全策略支持使用 Authenticode 签名和 X.509 编码的数字公钥证书对脚本进行签名。Windows
PowerShell 的签名功能并不完整,但这些功能允许用户对脚本进行签名,并允许 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-ChildIte
m 和 Invoke-Item cmdlet。 另外,包括证书提供程序的 Windows PowerShell 安全性管理单元 (Microsoft.PowerShell.Security) 还包括
获取和设置 Authenticode 签名和获取证书的管理单元。要获取安全性管理单元中的 cmdlet 列表,请键入“get-command -mod
ule *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\6B8223358119BB08840DEE50FD8AF9
EA776CE66B | format-list -property * -------------------------- 示例 5 -------------------------- 此命令使用 Get-ChildItem cmdlet 获取计算机上的所有证书,并使用其 CodeSigningCert 动态参数来仅获取具有代
码签名颁发机构的证书。 get-childitem -path * -codesigningcert -recurse 任务: 打开 MMC 证书管理单元 -------------------------- 示例 1 -------------------------- 此命令打开 MMC 证书管理单元来管理指定的证书。 invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE6
6B 动态参数
-CodeSigningCert <System.Management.Automation.SwitchParameter>
仅获取那些具有代码签名颁发机构的证书。 支持的 cmdlet: Get-Item, Get-ChildItem 注释 相关链接
about_Providers
about_Signing
Get-AuthenticodeSignature
Set-AuthenticodeSignature
Get-PfxCertificate ______________________________________
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-location | get-member

   TypeName: System.Management.Automation.PathInfo

Name         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;}
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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 Pow
erShell 安装目录 ($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、ScriptProp
erty)。 并非所有对象都具有成员的全部类型。如果您指定该对象所不具有的成员类型,则 Windows PowerShell 会返回 null 值。 若要获取相关类型的成员(如所有扩展成员),请使用 View 参数。如果将 MemberType 参数与 Static 或 View 参数一起使用,Ge
t-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-Mem
ber 将获取同时属于这两个集合的成员。如果在同一命令中使用 Static 和 View 参数,将忽略 View 参数。 是否必需? False
位置? named
默认值
是否接受管道输入? false
是否接受通配符? False
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-location | get-member  -static

   TypeName: System.Management.Automation.PathInfo

Name            MemberType Definition
---- ---------- ----------
Equals Method static bool Equals(System.Object objA, System.Obj...
ReferenceEquals Method static bool ReferenceEquals(System.Object objA, S...
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

Exp: 获取对象的属性

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-location | get-member  -membertype  property

   TypeName: System.Management.Automation.PathInfo

Name         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;}
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-location | get-member  -view  base

   TypeName: System.Management.Automation.PathInfo

Name         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;}
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

三、格式化输出

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

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

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

3、1  format-wide  

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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:
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-command  | format-wide -property  commandtype

Alias                                   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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-command  | format-wide -property  commandtype   -colum   6

Alias         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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

3、2 format-list

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

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-location | format-list

Drive        : C
Provider : Microsoft.PowerShell.Core\FileSystem
ProviderPath : C:\Users\vol_20120330
Path : C:\Users\vol_20120330
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

Path : C:\Users\vol_20120330

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

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

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

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

3、3  format-table

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

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

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

Path
----
C:\Users\vol_20120330

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
____________________________________________________________________________
PS C:\Users\vol_20120330> get-process | format-table Handles 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 PresentationFontCache
818 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
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

Exp:

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-process | format-table  -property  path,cpu,id,pm

Path                                CPU                  Id                  PM
---- --- -- --
C:\Program Files... 0.0156001 2900 5042176
1036 16285696
1580 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 3518464
432 1441792
516 2347008
C:\Windows\syste... 272.8145488 2628 33767424
C:\Program Files... 0.936006 2916 5431296
1732 76525568
C:\Windows\Explo... 31.6994032 2668 32452608
C:\Program Files... 275.7629677 820 45711360
0 0
C:\Program Files... 102.7734588 3848 24023040
C:\Program Files... 118.2799582 4016 37036032
C:\Program Files... 0.5148033 3868 8970240
616 3481600
624 1597440
C:\Windows\syste... 305.0755556 6084 169136128
5604 12177408
C:\Program Files... 676.9351393 5944 104837120
C:\Windows\syste... 0.5772037 3456 6893568
3656 29736960
564 5378048
328 323584
C:\Program Files... 0.3432022 2952 3346432
1412 5283840
1808 45916160
1892 1495040
732 3133440
812 3444736
904 14987264
936 52178944
964 19533824
1112 3723264
1252 11919360
1500 10014720
1932 1449984
2300 1949696
2640 3493888
3088 79384576
C:\Program Files... 59.4207809 2880 12128256
3572 2564096
C:\Program Files... 0.0468003 3252 5259264
4 49152
3840 3076096
C:\Windows\syste... 0.3900025 2788 8450048
5156 4833280
508 1167360
596 2269184
1900 9375744
2064 7884800
2344 1572864 ________________________
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

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

3、3、2  autosize参数

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
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 ...001 C:\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 ...008 C:\Windows\system32\Dwm.exe ...648
C:\Program Files\ESET\ESET Smart Security\egui.exe ...006 C:\Windows\Explorer.EXE ...047
C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe ...677 C:\Program Files\YouKu\iku2\iku.exe ...612
C:\Program Files\YouKu\common\ikuacc.exe ...649
C:\Program Files\YouKu\common\ikucmc.exe ...033 C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe ...806 C:\Program Files\Tencent\QQPlayer\QQPlayer.exe ...942
C:\Windows\system32\rundll32.exe ...037 C:\Program Files\SogouInput\6.1.0.6700\SogouCloud.exe ...022 C:\Program Files\Synaptics\SynTP\SynTPEnh.exe ...899 C:\Program Files\Synaptics\SynTP\SynTPLpr.exe ...003 C:\Windows\system32\taskhost.exe
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

3、3、3  wrap参数

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

PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输
PS C:\Users\vol_20120330> get-process | format-table  -property  cpu,id,pm,path   -wrap

                CPU                  Id                  PM Path
--- -- -- ----
0.0156001 2900 5042176 C:\Program Files\Ad
obe\Acrobat 9.0\Acr
obat\acrotray.exe
1036 16285696
1580 11984896
14.2740915 3780 36433920 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\chrome.exe
284.3430227 4316 54341632 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\chrome.exe
280.0841954 4500 240979968 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\chrome.exe
21.2785364 4772 7495680 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\chrome.exe
107.0790864 4948 96923648 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\chrome.exe
90.2153783 5760 82915328 C:\Users\vol_201203
30\AppData\Local\Go
ogle\Chrome\Applica
tion\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\ES
ET\ESET Smart Secur
ity\egui.exe
1732 76525568
32.136206 2668 32382976 C:\Windows\Explorer
.EXE
275.7785678 820 45711360 C:\Program Files\Fo
xit Software\Foxit
Reader\Foxit Reader
.exe
0 0
103.9746665 3848 24006656 C:\Program Files\Yo
uKu\iku2\iku.exe
121.1035763 4016 32854016 C:\Program Files\Yo
uKu\common\ikuacc.e
xe
0.5148033 3868 8970240 C:\Program Files\Yo
uKu\common\ikucmc.e
xe
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\Te
ncent\QQPlayer\QQPl
ayer.exe
0.5772037 3456 6893568 C:\Windows\system32
\rundll32.exe
3656 27095040
564 5406720
328 323584
0.3588023 2952 3346432 C:\Program Files\So
gouInput\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\Sy
naptics\SynTP\SynTP
Enh.exe
3572 2564096
0.0468003 3252 5259264 C:\Program Files\Sy
naptics\SynTP\SynTP
Lpr.exe
4 49152
0.3900025 2788 8478720 C:\Windows\system32
\taskhost.exe
508 1167360
596 2269184
1900 9539584
2064 7864320
2344 1572864
PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

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

3、3、4  groupby参数

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

4、小结

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

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

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