about_Language_Keywords
简短说明
描述 PowerShell 脚本语言中的关键字。
长说明
PowerShell 具有以下语言关键字。 有关详细信息,请参阅关键字 (keyword) 的关于主题和表后的信息。
关键字 | 参考 |
---|---|
begin |
about_Functions、 about_Functions_Advanced |
break |
about_Break、 about_Trap |
catch |
about_Try_Catch_Finally |
class |
about_Classes |
continue |
about_Continue、 about_Trap |
data |
about_Data_Sections |
define |
保留以供将来使用 |
do |
about_Do、 about_While |
dynamicparam |
about_Functions_Advanced_Parameters |
else |
about_If |
elseif |
about_If |
end |
about_Functions、 about_Functions_Advanced_Methods |
enum |
about_Enum |
exit |
本主题中所述 |
filter |
about_Functions |
finally |
about_Try_Catch_Finally |
for |
about_For |
foreach |
about_ForEach |
from |
保留以供将来使用 |
function |
about_Functions、 about_Functions_Advanced |
hidden |
about_Hidden |
if |
about_If |
in |
about_ForEach |
param |
about_Functions |
process |
about_Functions、 about_Functions_Advanced |
return |
about_Return |
static |
about_Classes |
switch |
about_Switch |
throw |
about_Throw、 about_Functions_Advanced_Methods |
trap |
about_Trap、about_Break、about_Try_Catch_Finally |
try |
about_Try_Catch_Finally |
until |
about_Do |
using |
about_Using、 about_Classes |
var |
保留以供将来使用 |
while |
about_While、 about_Do |
PowerShell 工作流使用以下关键字:
inlinescript
parallel
sequence
workflow
PowerShell 工作流仅在 PowerShell 5.1 中受支持。 有关工作流的详细信息,请参阅 在工作流中运行 PowerShell 命令。
begin
指定函数主体的一部分,以及 dynamicparam
、 process
和 end
关键字。 语句 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
与 while
或 until
关键字 (keyword) 一起使用,作为循环构造。 PowerShell 至少运行一次语句列表,这与使用 while
的循环不同。
while
的语法:
do {<statement list>} while (<condition>)
until
的语法:
do {<statement list>} until (<condition>)
dynamicparam
指定函数主体的一部分,以及 begin
、 process
和 end
关键字。 动态参数在运行时添加。
语法:
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
与 if
和 else
关键字一起使用以指定其他条件。 关键字 (keyword) else
是可选的。
语法:
if (<condition>) {<statement list>}
elseif (<condition>) {<statement list>}
else {<statement list>}
end
指定函数主体的一部分,以及 dynamicparam
、 begin
和 end
关键字。 语句 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
定义一个语句列表,该列表在与 try
和 catch
关联的语句之后运行。 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) 指定一个或多个命名参数。 在函数语句列表中,可以包括 dynamicparam
、 begin
、 process
和 end
语句列表。
语法:
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
指定函数主体的一部分,以及 dynamicparam
、 begin
和 end
关键字。 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>)