在这个例子中,Get-Process是命令,- name为参数,并探险者是参数。该命令的结果是关于进程的信息Explorer.exe的。如果没有使用参数或参数,Get-Process命令只列出有关当前正在运行的所有进程的进程信息,而不列出有关特定进程的信息。要控制命令的功能或让它执行比默认操作更多的操作,您需要理解命令的语法。若要在CLI中有效地使用命令,请使用得到帮助命令,稍后将在“有用的cmdlet”中讨论,以获取关于命令的功能及其使用需求的详细信息。
导航CLI
与所有基于CLI的炮弹,你需要了解如何浏览PowerShell的CLI有效地使用它。表2.1列出了使用PowerShell控制台时有各种键相关的编辑操作。
表2.1 PowerShell控制台编辑特性
键 |
编辑操作 |
左右箭头 |
将光标左右移动到当前命令行。 |
上下箭头 |
向上移动,并通过最近输入的命令的列表下来。 |
插入 |
切换插入和overstrike文本输入模式。 |
删除 |
删除当前光标位置的字符。 |
退格 |
删除紧接在当前光标位置前面的字符。 |
F7 |
在命令shell的弹出窗口中显示最近键入的命令列表。使用向上和向下箭头选择先前键入的命令,然后按Enter键执行所选的命令。 |
标签 |
自动完成的命令行序列。使用Shift+Tab序列向后移动可能匹配的列表。 |
幸运的是,表2.1中的大多数特性都是原生的CMD命令提示符,这使得已经熟悉Windows命令行的管理员更容易采用PowerShell。惟一的主要区别是,选项卡键自动完成功能在PowerShell中得到了增强CMD命令提示符。
PowerShell中的Tab键自动完成
如同CMD命令提示符,PowerShell对文件和目录名执行自动完成。因此,如果您输入一个部分文件或目录名并按Tab键,PowerShell将返回当前目录中第一个匹配的文件或目录名。再次按Tab键将返回第二个可能的匹配项,并使您能够循环遍历结果列表。就像CMD命令提示符,PowerShell的Tab键自动完成也可以自动完成与通配符,如本例所示:
psd:\> cd:\Doc*<选项卡>PS C:\> CD 'C:\ Documents和设置'PS C:\文档和设置>
在Tab键自动完成之间的区别CMDPowerShell是PowerShell可以自动完成命令。例如,您可以输入部分命令名并按下标签和PowerShell步骤通过一个可能的命令匹配列表,如下所示:
p C: \ > get-pro<选项卡>p C: \ > get-process
PowerShell中可以与特定命令相关联还自动完成参数名称。只需输入一个命令和部分参数名称,然后按标签通过为您指定的命令的参数键,和PowerShell周期。这种方法也适用于与命令相关的变量。此外,PowerShell中进行自动完成的方法和变量和对象的属性。以使用命名变量来看一个例子Z美元设定值“变量”:
PS C:\> $Z = "变量"p C: \ >美元z <选项卡>
在你输入Z美元然后按Tab键,PowerShell循环执行可以针对的操作Z美元变量。例如,如果您选择Z.Length美元属性并按Enter键,PowerShell将返回字符串的长度Z美元变量,如下图所示:
PS C:\> $Z = "变量"PS C:\> $ž。<选项卡>p C: \ > Z.Length美元8p C: \
对于变量之间的区分自动完成功能属性和方法。属性列表中没有开括号(如前面所示)Z.Length美元和方法用开括号列出,如下例所示:
PS C:\> $Z = "变量"PS C:\> $ Z.con<选项卡>PS C:\> $ Z.Contains(
当。。。的时候$ Z.Contains(提示出现时,您可以使用此方法查询是否Z美元变量包含字符V通过输入以下命令:
PS C:\> $Z = "变量"PS C:\> $ Z.Contains( “V”)真正的p C: \ >
PowerShell纠正方法或属性名的大小写,使其与定义匹配。在大多数情况下,这个功能只是表面文章,因为在默认情况下,PowerShell不区分大小写。
了解的cmdlet
cmdlet是PowerShell功能的基本组成部分。它们被实现为托管类(构建在。net框架上),其中包含一组定义良好的方法来处理数据。cmdlet开发人员编写在调用cmdlet时运行的代码,并将代码编译到一个DLL中,该DLL在启动PowerShell实例时加载到PowerShell实例中。
cmdlet总是以这种格式命名动词名词其中动词指定动作,名词指定操作对象。您可能已经注意到,为了使PowerShell更加通用,大多数PowerShell名称都是单数,而不是复数。例如,一个命令可能提供一个值或一组值,而且无法提前知道cmdlet名称是否应该是复数。此外,英语在处理复数时也不一致。例如,单词鱼可以是单数,也可以是复数,这取决于上下文。如果英语不是你的第一语言,搞清楚什么应该是复数或者正确的复数形式可能会让人望而生畏。
注意 -默认的PowerShell动词是得到,如果没有其他动词给出其假设。此默认设置的效果是,过程命令产生的结果相同Get-Process。
为了确定参数的cmdlet支持,您可以通过使用以下命令的任何审查的cmdlet的帮助信息:
PS C:\> cmdletName -?PS C:\>获取帮助cmdletName
此外,您还可以使用get命令cmdlet来确定哪些参数可用以及如何使用它们。下面是语法的一个例子:
PS C:\> GET命令cmdletName
当与get命令将其输出管道连接到格式列表cmdlet生成一个更简洁的cmdlet使用列表。例如,只显示的定义信息Get-Process,使用以下命令:
PS C:\> get-command get-process |格式列表定义定义:Get-Process [[-Name]] [-Verbose] [-Debug] [-ErrorAction] ] [-ErrorVariable ] [-OutVariable ] [-OutBuffer ] 获取进程-Id <的Int32 []> [-Verbose] [-Debug] [-ErrorAction
] [-ErrorVariable ] [-OutVariable ] [-OutBuffer ] 获取进程-InputObject <处理[]> [-Verbose] [-Debug] [-ErrorAction
] [-ErrorVariable 字符串>][-OutBuffer < Int32 >)p C: \ >] [-OutVariable <
通用参数
因为cmdlet派生自一个基类,所以有很多常见的参数,这是提供给所有的cmdlet,可以用来帮助PowerShell命令提供更一致的接口。这些通用的参数在表2.2中描述。
TTable的2.2 PowerShell的常见参数
参数 |
数据类型 |
描述 |
详细 |
布尔 |
生成关于操作的详细信息,很像跟踪或事务日志。此参数仅在生成详细数据的cmdlet中有效。 |
调试 |
布尔 |
生成有关操作的程序员级详细信息。要使此参数有效,cmdlet必须支持生成调试数据。 |
ErrorAction |
枚举 |
确定如何在发生错误时的cmdlet的响应。价值观是继续(缺省值),停止,SilentlyContinue,查询。 |
ErrorVariable |
字符串 |
指定一个变量,从处理过程中的命令存储的错误。将填充此变量,除了$错误。 |
OutVariable |
字符串 |
指定处理期间从命令输出一个变量,其存储。 |
OutBuffer |
Int32 |
在调用管道中的下一个cmdlet之前,确定要缓冲的对象数量。 |
如果 |
布尔 |
解释在执行命令但实际上不执行命令时所发生的情况。 |
确认 |
布尔 |
提示是否允许用户进行任何行动修改系统之前。 |
注意 -最后两个参数见表2.2,如果和确认,是特殊的,因为它们需要cmdlet来支持.NET方法ShouldProcess,这可能对所有cmdlet都不适用。的ShouldProcess方法与用户一起确认操作,在执行操作之前发送要更改的资源的名称以进行确认。
得到帮助
当你开始使用PowerShell时得到帮助和get命令cmdlets是有用的。下面几节中描述的这两个cmdlet将帮助您探索PowerShell的功能,并帮助您了解可以运行的命令的更多信息。
得到帮助
如您所料,您将使用得到帮助检索关于cmdlet和其他主题的帮助信息。要显示所有帮助主题的列表,请输入得到帮助*在PowerShell命令提示,如图在下面的例子。请注意,由于空间限制,例如只显示可用主题的一个子集返回由得到帮助。
PS C:\>获取帮助*名称分类简介---- -------- --------ac别名添加内容asnp别名Add-PSSnapinclc别名明确cli别名Clear-ItemCLP别名清除-ItemPropertyclv别名Clear-VariableCPI别名拷贝项目cpp别名Copy-ItemPropertycvpa别名Convert-Pathdiff别名比较对象epal别名Export-Aliasepcsv别名Export-Csvfc别名Format-Customfl别名格式表的foreach别名的foreach对象…p C: \ >
以缩小所返回的项的列表得到帮助,您可以通过过滤主题名称和类别来缩短它。例如,获取以谓词开头的所有cmdlet的列表得到,试试下面的命令:
PS C:\> get-help - name get-* - category cmdlet名称分类简介---- -------- --------获取命令cmdlet获取基本信息...获取帮助cmdlet显示的信息...Get-History Cmdlet获取com的列表…GET-PSSnapin cmdlet获取Windows电源...获取事件日志Cmdlet获取关于…GET-ChildItem cmdlet获取的项目和智...Get-Content Cmdlet获取……p C: \ >
你选择了一个帮助主题后,您可以通过使用主题名称作为参数的获取帮助信息得到帮助cmdlet。例如,检索。的帮助获取内容cmdlet,输入以下命令:
PS C:\>获取帮助获取内容
注意 -PowerShell有两个参数得到帮助小命令:详细的和完整的。的详细的参数显示关于cmdlet的附加信息,包括参数的描述和使用cmdlet的示例。的完整的参数显示cmdlet的整个帮助文件,包括有关参数的技术信息。
cmdlet的帮助主题
PowerShell帮助分为每个cmdlet的部分。表2.3描述了每个cmdlet的帮助信息。
表2.3的PowerShell帮助部分
帮助部分 |
描述 |
的名字 |
该cmdlet的名称。 |
概要 |
简要描述cmdlet的功能。 |
详细说明 |
对cmdlet行为的详细描述,通常包括使用示例。 |
语法 |
具体使用细节与小命令输入命令。 |
参数 |
可以与此cmdlet一起使用有效参数。 |
输入类型 |
此cmdlet接受的输入类型。 |
返回类型 |
cmdlet返回的数据类型。 |
终止错误 |
如果存在的话,识别任何错误结果在cmdlet提前终止。 |
终止错误 |
标识cmdlet的运行时可能出现的,但不会导致cmdlet来终止其操作不严重的错误。 |
笔记 |
关于使用cmdlet的其他详细信息,包括特定的场景和可能的限制或特性。 |
例子 |
该cmdlet常见用法示例。 |
相关链接 |
引用执行类似任务的其他cmdlet。 |
get命令
另一个有用的cmdlet是get命令,用于在PowerShell会话中列出所有可用的cmdlet:
PS C:\> GET命令的CommandType名称定义----------- ---- ----------Add-Content [-Path]Cmdlet Add-History Add-History [[-InputObject]…Add-Member [-MemberType] cmdlet的附加PSSnapin添加-PSSnapin [ - 名称] <字符串...清除内容清除内容[-Path] Cmdlet清除- item清除- item [-Path] 小命令清除-ItemProperty清除-ItemProperty [-Path] <...Clear-Variable [-Name] Cmdlet比较对象比较对象[-ReferenceOb……p C: \ >
的get命令cmdlet比得到帮助因为它在PowerShell会话中列出了所有可用的命令(cmdlet、脚本、别名、函数和本机应用程序),如下例所示:
PS C:\获取命令注意*的CommandType名称定义----------- ---- ----------应用NOTEPAD.EXE C:\WINDOWS\ NOTEPAD.EXENOTEPAD.EXE C应用:\ WINDOWS \ SYSTEM32 \ NOTEPAD.EXEp C: \ >
当使用get命令对于cmdlet以外的元素,返回的信息与您看到的cmdlet的信息不同。例如,对于现有的应用程序定义属性是应用程序的路径。但是,也可以获得关于应用程序的其他信息,如下所示: