about_Language_Keywords

简短说明

介绍 PowerShell 脚本语言中的关键字。

长说明

PowerShell 具有以下语言关键字。 有关详细信息,请参阅有关关键字的主题以及表后面的信息。

关键字 参考
begin about_Functionsabout_Functions_Advanced
break about_Breakabout_Trap
catch about_Try_Catch_Finally
class about_Classes
continue about_Continueabout_Trap
data about_Data_Sections
define 保留以供将来使用
do about_Doabout_While
dynamicparam about_Functions_Advanced_Parameters
else about_If
elseif about_If
end about_Functionsabout_Functions_Advanced_Methods
enum about_Enum
exit 本主题中所述
filter about_Functions
finally about_Try_Catch_Finally
for about_For
foreach about_ForEach
from 保留以供将来使用
function about_Functionsabout_Functions_Advanced
hidden about_Hidden
if about_If
in about_ForEach
param about_Functions
process about_Functionsabout_Functions_Advanced
return about_Return
static about_Classes
switch about_Switch
throw about_Throwabout_Functions_Advanced_Methods
trap about_Trapabout_Breakabout_Try_Catch_Finally
try about_Try_Catch_Finally
until about_Do
using about_Usingabout_Classes
var 保留以供将来使用
while about_Whileabout_Do

PowerShell 工作流使用以下关键字:

  • inlinescript
  • parallel
  • sequence
  • workflow

PowerShell 工作流仅在 PowerShell 5.1 中受支持。 有关工作流的详细信息,请参阅 在工作流中运行 PowerShell 命令

begin

指定函数正文的一部分以及 dynamicparam关键字 processend 关键字。 语句 begin 列表在从管道接收任何对象之前一次运行。

语法:

function <name> {
    dynamicparam {<statement list>}
    begin {<statement list>}
    process {<statement list>}
    end {<statement list>}
}

break

导致脚本退出循环。

语法:

while (<condition>) {
   <statements>
   ...

   break
   ...

   <statements>
}

catch

指定在随附 try 语句列表中发生错误时要运行的语句列表。 错误类型需要方括号。 第二对括号指示错误类型是可选的。

语法:

try {<statement list>}
catch [[<error type>]] {<statement list>}

class

在 PowerShell 中指定一个新类。

语法:

class <class-name> {
    [[hidden] [static] <property-definition> ...]
    [<class-name>([argument-list>]) {<constructor-statement-list>} ...]
    [[hidden] [static] <method-definition> ...]
}

continue

导致脚本停止运行循环并返回到条件。 如果满足条件,脚本将再次开始循环。

语法:

while (<condition>) {
   <statements>
   ...

   continue
   ...

   <statements>
}

data

在脚本中,定义一个将数据与脚本逻辑隔离的部分。 还可以包含 if 语句和一些有限的命令。

语法:

data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}

do

与或until关键字一起使用while作为循环构造。 PowerShell 至少运行一次语句列表,与使用 while循环不同。

while 的语法:

do {<statement list>} while (<condition>)

until 的语法:

do {<statement list>} until (<condition>)

dynamicparam

指定函数正文的一部分以及 begin关键字 processend 关键字。 动态参数在运行时添加。

语法:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

else

与关键字一起使用 if 以指定默认语句列表。

语法:

if (<condition>) {<statement list>}
else {<statement list>}

elseif

与关键字else一起使用if以指定其他条件。 关键字 else 是可选的。

语法:

if (<condition>) {<statement list>}
elseif (<condition>) {<statement list>}
else {<statement list>}

end

指定函数正文的一部分以及 dynamicparam关键字 beginend 关键字。 end语句列表在从管道接收所有对象后一次运行。

语法:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

enum

enum 用于声明枚举;由一组名为枚举器列表的命名标签组成的非重复类型。

语法:

enum <enum-name> {
    <label> [= <int-value>]
    ...
}

exit

导致 PowerShell 退出脚本或 PowerShell 实例。

语法:

exit
exit <exitcode>

与 File 参数一pwsh起使用时,.ps1 (脚本) 文件本身应包含有关处理脚本运行时发生的任何错误或异常的说明。 应仅使用 exit 语句来指示脚本的执行后状态。

在 Windows 上,允许之间 [int]::MinValue[int]::MaxValue 允许的任何数字。

在 Unix 上,只允许和[byte]::MaxValue允许正[byte]::MinValue数。 通过-255添加 256 自动转换为正数范围-1中的负数。 例如, -2 转换为 254.

在 PowerShell 中 exit ,该语句设置变量的值 $LASTEXITCODE 。 在 Windows Command Shell (cmd.exe) 中,exit 语句设置环境变量的值 %ERRORLEVEL%

非数值或特定于平台范围的任何参数都转换为值 0

在以下示例中,用户通过添加到exit 4脚本文件test.ps1将错误级别变量值设置为 4

C:\scripts\test>type test.ps1
1
2
3
exit 4

C:\scripts\test>pwsh -file ./test.ps1
1
2
3

C:\scripts\test>echo %ERRORLEVEL%
4

运行 pwsh.exe -File <path to a script> 脚本文件并使用命令 exit 终止时,退出代码将设置为与命令一起使用 exit 的数值参数。 如果脚本没有 exit 语句,则退出代码始终 0 在脚本完成时没有错误或 1 脚本从未经处理的异常终止时。

filter

指定语句列表为每个输入对象运行一次的函数。 它的效果与仅 process 包含块的函数相同。

语法:

filter <name> {<statement list>}

finally

定义在与 trycatch关联的语句之后运行的语句列表。 finally即使按 Ctrl+C 保留脚本,或者使用exit脚本中的关键字,语句列表也会运行。

语法:

try {<statement list>}
catch [<error type>] {<statement list>}
finally {<statement list>}

for

定义具有条件的循环。

语法:

for (<initialize>; <condition>; <iterate>) { <statement list> }

foreach

使用集合的每个成员定义循环。

语法:

foreach (<item> in <collection>) { <statement list> }

from

保留供将来使用。

function

创建可重用代码的命名语句列表。 可以命名函数所属的范围。 还可以使用 param 关键字指定一个或多个命名参数。 在函数语句列表中,可以包括dynamicparambeginprocessend语句列表。

语法:

function [<scope:>]<name> {
   param ([type]<$pname1> [, [type]<$pname2>])
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

还可以选择在函数名称之后在语句列表中定义一个或多个参数。

语法:

function [<scope:>]<name> [([type]<$pname1>, [[type]<$pname2>])] {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

if

定义条件。

语法:

if (<condition>) {<statement list>}

hidden

隐藏 cmdlet、IntelliSense 和选项卡完成结果的默认结果中的 Get-Member 类成员。

语法:

hidden [data type] $member_name

in

在语句中 foreach 用于创建一个循环,该循环使用集合的每个成员。

语法:

foreach (<item> in <collection>){<statement list>}

param

定义函数中的参数。

语法:

function [<scope:>]<name> {
   param ([type]<$pname1>[, [[type]<$pname2>]])
   <statement list>
}

process

指定函数正文的一部分以及 dynamicparam关键字 beginend 关键字。 process当语句列表从管道接收输入时,process语句列表会针对管道中的每个元素运行一次。 如果管道没有提供对象,则 process 语句列表不会运行。 如果命令是管道中的第一个命令,则 process 语句列表将运行一次。

语法:

function <name> {
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

return

使 PowerShell 离开当前范围(如脚本或函数),并将可选表达式写入输出。

语法:

return [<expression>]

static

指定定义的属性或方法对于定义该属性或方法的所有类实例很常见。

请参阅 class 使用情况示例。

switch

若要检查多个条件,请使用 switch 语句。 该 switch 语句等效于一系列 if 语句,但更简单。

switch 语句列出每个条件和可选操作。 如果某个条件获得,则执行该操作。

语法 1:

switch [-regex|-wildcard|-exact][-casesensitive] ( <value> )
{
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   ...

   default {<statement list>}
}

语法 2:

switch [-regex|-wildcard|-exact][-casesensitive] -file <filename>
{
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   <string>|<number>|<variable>|{ <expression> } {<statement list>}
   ...

   default {<statement list>}
}

throw

将对象作为错误引发。

语法:

throw [<object>]

trap

定义在遇到错误时要运行的语句列表。 错误类型需要方括号。 第二对括号指示错误类型是可选的。

语法:

trap [[<error type>]] {<statement list>}

try

定义要在语句运行时检查错误的语句列表。 如果发生错误,PowerShell 将继续在或finally语句中catch运行。 错误类型需要方括号。 第二对括号指示错误类型是可选的。

语法:

try {<statement list>}
catch [[<error type>]] {<statement list>}
finally {<statement list>}

until

在语句中 do 用作循环构造,其中至少执行语句列表一次。

语法:

do {<statement list>} until (<condition>)

using

允许你指示会话中使用的命名空间。 键入名称、类和成员需要更少的键入才能引用它们。 还可以包括来自模块的类。

命名空间语法:

using namespace <.Net-namespace>

模块语法:

using module <module-name>

程序集语法:

using assembly <.NET-assembly-path>

有关详细信息,请参阅 about_Using

while

while 语句是一个循环构造,在执行语句之前测试条件。 如果条件为 false,则语句不会执行。

语句语法:

while (<condition>) {
   <statements>
 }

在语句中使用 do 时,是循环构造的一部分, while 其中至少执行一次语句列表。

do 循环语法:

do {<statement list>} while (<condition>)

另请参阅