about_Language_Keywords

简短说明

描述 PowerShell 脚本语言中的关键字。

长说明

PowerShell 具有以下语言关键字。 有关详细信息,请参阅关键字 (keyword) 的关于主题和表后的信息。

关键字 参考
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_Break、about_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

指定函数主体的一部分,以及 dynamicparamprocessend 关键字。 语句 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

whileuntil 关键字 (keyword) 一起使用,作为循环构造。 PowerShell 至少运行一次语句列表,这与使用 while的循环不同。

while 的语法:

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

until 的语法:

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

dynamicparam

指定函数主体的一部分,以及 beginprocessend 关键字。 动态参数在运行时添加。

语法:

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

else

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

语法:

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

elseif

ifelse 关键字一起使用以指定其他条件。 关键字 (keyword) else 是可选的。

语法:

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

end

指定函数主体的一部分,以及 dynamicparambeginend 关键字。 语句 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]::MaxValue 之间的[int]::MinValue任意数字。

在 Unix 上,只允许和 [byte]::MaxValue 之间的[byte]::MinValue正数。 通过加 256,范围中的-1-255负数会自动转换为正数。 例如, -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 语句,则当脚本完成且未出错或1脚本因未经处理的异常终止时,退出代码始终0为 。

filter

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

语法:

filter <name> {<statement list>}

finally

定义一个语句列表,该列表在与 trycatch关联的语句之后运行。 finally即使按 Ctrl+C 离开脚本或在exit脚本中使用关键字 (keyword) ,语句列表也会运行。

语法:

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 关键字 (keyword) 指定一个或多个命名参数。 在函数语句列表中,可以包括 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 和 Tab 完成结果的默认结果 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

指定函数主体的一部分,以及 dynamicparambeginend 关键字。 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>)

另请参阅