Windows PowerShell 语言规范 3.0

编辑说明

重要

Windows PowerShell 语言规范 3.0 于 2012 年 12 月发布,基于 Windows PowerShell 3.0。 此规范不反映 PowerShell 的当前状态。 没有计划更新本文档以反映当前状态。 此处提供了本文档供历史参考。

该规范文档可以从 Microsoft 下载中心下载为 Microsoft Word 文档:https://www.microsoft.com/download/details.aspx?id=36389。该 Word 文档已在 Microsoft Learn 上转换为展示用途。 转换期间,进行了一些编辑更改,以适应 Docs 平台的格式设置。 已更正某些拼写错误和次要错误。

1. 简介

PowerShell 是命令行 shell 和脚本语言,专为系统管理员设计。

大多数 shell 通过在新进程中执行命令或实用工具来运行,并将结果以文本的形式呈现给用户。 这些 shell 还具有内置于 shell 中并在 shell 进程中运行的命令。 由于内置命令很少,因此已创建许多实用工具来补充它们。 PowerShell 非常不同。 shell 处理对象,而不是处理文本。 PowerShell 还包括一组大量的内置命令,每个命令都具有一致的界面,并且这些命令可以与用户写入的命令一起使用。

对象 是具有 属性的数据实体(即特征)和 方法(即可以对对象执行的操作)。 同一类型的所有对象具有相同的基本属性和方法集,但每个 实例 对象可以具有不同的属性值。

使用对象的一个主要优点是,使用管道命令要容易得多;即将一个命令的输出写入另一个命令作为输入。 (在传统的命令行环境中,需要操作一个命令的文本输出以满足另一个命令的输入格式。

PowerShell 包含一种非常丰富的脚本语言,支持用于循环、条件、流控制和变量分配的构造。 此语言的语法功能和关键字类似于 C# 编程语言中使用的语法功能和关键字(§C.)。

PowerShell 中有四种类型的命令:脚本、函数和方法、cmdlet 和本机命令。

  • 命令文件称为 脚本。 按照惯例,脚本的文件名扩展名为 .ps1。 PowerShell 程序最高级别是一个脚本,反过来,它可以调用其他命令。

  • PowerShell 支持通过命名过程进行模块化编程。 在 PowerShell 中编写的过程称为 函数,而执行环境(通常以某种其他语言编写)提供的外部过程称为 方法

  • cmdlet(发音为“command-let”)是一个简单的单任务命令行工具。 尽管 cmdlet 可以单独使用,但当它们结合在一起用于执行复杂任务时,cmdlet 的威力才能完全展现出来。

  • 本机命令是主机环境的一部分。

每次 PowerShell 运行时环境开始执行时,都会开始所谓的 会话。 然后,命令在该会话的上下文中执行。

此规范定义 PowerShell 语言、内置 cmdlet 以及通过管道使用对象。

与大多数接受和返回文本的 shell 不同,Windows PowerShell 基于 .NET Framework 公共语言运行时 (CLR) 和 .NET Framework 构建,并接受并返回 .NET Framework 对象。