Windows PowerShell 在设计上集成了源自众多不同环境的概念。尽管使用过特定外壳程序或编程环境的人可能会熟悉其中几个概念,但很少有人了解所有这些概念。查看这些概念可帮助您概括了解本外壳程序。
与传统的命令行界面命令不同,Windows PowerShell cmdlet 旨在可处理对象 -- 结构化的信息,而不只是显示在屏幕上的字符串。命令输出始终提供需要使用的额外信息。我们将在本文档中深入讨论此主题。
如果您过去曾使用文本处理工具来处理命令行数据,则会发现,在 Windows PowerShell 中尝试使用这些工具时,其行为会有所不同。在大多数情况下,您不需要使用文本处理工具来提取特定信息。通过使用标准的 Windows PowerShell 对象操纵命令,可直接访问任何数据部分。
许多接口(例如 Cmd.exe)均不能提供直接扩展内置命令集的方法。您可以创建在 Cmd.exe 中运行的外部命令行工具,但这些外部工具不能提供服务(例如帮助集成),并且 Cmd.exe 不能自动了解它们是有效的命令。
Windows PowerShell 中的本机二进制命令(也称为 cmdlet,读作 command-let)可以通过创建并使用管理单元添加到 Windows PowerShell 中的 cmdlet 进行补充。Windows PowerShell 管理单元已经过编译,与任何其他接口中的二进制工具相同。您可以使用它们将 Windows PowerShell 提供程序以及新的 cmdlet 添加到外壳程序中。
由于 Windows PowerShell 内部命令的特殊性质,因此我们称它们为 cmdlet。
<!----><!----><!---->请注意: <o:p></o:p>
Windows PowerShell 可以运行除 cmdlet 以外的其他命令。“Windows PowerShell 入门”中将不会详细介绍这些命令,但了解这些命令类型类别会很有帮助。Windows PowerShell 支持与 UNIX 外壳程序脚本和 Cmd.exe 批处理文件类似但文件扩展名为 .ps1 的脚本。Windows PowerShell 还允许您创建可直接用于界面或脚本中的内部函数。<o:p></o:p>
键入命令时,Windows PowerShell 始终会直接处理命令行输入。Windows PowerShell 还可以设置屏幕上显示的输出格式。此功能十分重要,因为它可以减少处理每个 cmdlet 所需的工作,并确保您在使用任何一种 cmdlet 时都能始终以相同方式进行操作。这样有助于简化工具开发人员和用户的工作,我们不妨以命令行帮助为例。
对于请求和显示帮助,传统的命令行工具都有其自身的方案。一些命令行工具使用 /? 来触发帮助显示;其他命令行工具使用 -?、/H 甚至 //。其中一些会以 GUI 窗口显示帮助,而不以控制台显示。某些复杂工具(例如,应用程序更新程序)会先将内部文件解包,然后才显示其帮助。如果使用的参数不正确,则该工具可能会忽略键入的内容,并自动开始执行任务。
在 Windows PowerShell 中输入命令时,Windows PowerShell 将自动分析并预处理所输入的全部内容。如果将 Windows PowerShell cmdlet 与 -? 参数一起使用,则始终表示“显示此命令的帮助”。Cmdlet 开发人员无需分析该命令;他们只需提供帮助文本。
即使是在 Windows PowerShell 中运行传统命令行工具,您也可以使用 Windows PowerShell 的帮助功能,了解这一点十分重要。Windows PowerShell 将对参数进行处理并将结果传递给外部工具。
<!----><!----><!---->请注意: <o:p></o:p>
如果在 Windows PowerShell 中运行图形应用程序,将会打开该应用程序的窗口。只有在处理您提供的命令行输入或返回到控制台窗口的应用程序输出时,Windows PowerShell 才会进行干预;它不会影响该应用程序的内部工作方式。<o:p></o:p>
由于 Windows PowerShell 基于 .NET Framework,因此 Windows PowerShell 的语法功能和关键字与 C# 编程语言中所使用的语法功能和关键字十分类似。如果您对 C# 语言感兴趣,通过了解 Windows PowerShell 将便于您轻松学习该语言。
如果您不是 C# 程序员,这一相似性则无关紧要。不过,如果您已熟悉 C#,则这些相似性可以让您更轻松地了解 Windows PowerShell。