简短说明
介绍 PowerShell 脚本语言中的关键字。
详细说明
PowerShell 具有以下语言关键字。 有关详细信息,请参阅有关关键字的主题以及表后面的信息。
PowerShell 工作流使用以下关键字:
inlinescriptparallelsequenceworkflow
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> ...]
}
clean
PowerShell 7.3 中添加了 clean 关键字。 关键字定义一个代码块,该代码块保证在函数的 begin、process 和 end 块之后运行。 与 end 块不同,即使其他一个块中存在终止错误,也会始终执行 clean 块。
continue
使脚本停止运行循环并返回到条件。 如果满足条件,脚本将再次开始循环。
语法:
while (<condition>) {
<statements>
...
continue
...
<statements>
}
data
在脚本中,定义一个将数据与脚本逻辑隔离的部分。 还可以包括 if 语句和一些有限的命令。
语法:
data <variable> [-SupportedCommand <cmdlet-name>] {<permitted content>}
do
与作为循环构造的 while 或 until 关键字一起使用。 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 关键字一起使用以指定默认语句列表。
语法:
if (<condition>) {<statement list>}
else {<statement list>}
elseif
与 if 和 else 关键字一起使用以指定其他条件。
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>
将 pwsh 与 File 参数一起使用时,.ps1(script) 文件本身应包含处理脚本运行时发生的任何错误或异常的说明。 应仅使用 exit 语句来指示脚本的执行后状态。
在 Windows 上,允许 [int]::MinValue 和 [int]::MaxValue 之间的任意数字。
在 Unix 上,只允许 [byte]::MinValue 和 [byte]::MaxValue 之间的正数。
-1 到 -255 范围内的负数通过添加 256 自动转换为正数。 例如,-2 转换为 254。
在 PowerShell 中,exit 语句设置 $LASTEXITCODE 变量的值。 在 Windows Command Shell(cmd.exe)中,exit 语句设置 %ERRORLEVEL% 环境变量的值。
任何非数值或超出平台特定范围的参数都会转换为 0的值。
在以下示例中,用户通过将 4 添加到脚本文件 exit 4,将错误级别变量值设置为 test.ps1。
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
定义在与 try 和 catch关联的语句之后运行的语句列表。 即使您按下控制键finally+ 退出脚本,或者在脚本中使用关键字,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 关键字指定一个或多个命名参数。 在函数语句列表中,可以包括 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
对类成员隐藏 Get-Member cmdlet、IntelliSense 和 Tab 键自动补全默认结果。
语法:
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 将继续在 catch 或 finally 语句中运行。 错误类型需要括号。 第二对括号表示错误类型是可选的。
语法:
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 语句是一个循环构造,在执行语句之前测试条件。 如果条件为假,则语句不会执行。
语句语法:
while (<condition>) {
<statements>
}
在 do 语句中使用时,while 是循环构造的一部分,其中至少执行一次语句列表。
do 循环语法:
do {<statement list>} while (<condition>)