about_Language_Keywords
简短说明
介绍 PowerShell 脚本语言中的关键字。
长说明
PowerShell 具有以下语言关键字。 有关详细信息,请参阅关键字的“关于”主题以及表格后面的信息。
关键字 | 参考 |
---|---|
begin |
about_Functions、about_Functions_Advanced |
break |
about_Break、about_Trap |
catch |
about_Try_Catch_Finally |
class |
about_Classes |
clean |
about_Functions、about_Functions_Advanced_Methods |
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 5.1 支持 PowerShell 工作流。 有关工作流的详细信息,请参阅在工作流中运行 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 clean
7.3 中添加了关键字 (keyword)。 关键字 (keyword)定义一个代码块,该代码块保证在函数和end
函数块之后begin
process
运行。 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
(脚本)文件本身应包含用于处理脚本运行时发生的任何错误或异常的说明。 应该仅使用 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
值。
在以下示例中,用户通过将错误级别变量值添加到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
定义在与 try
和 catch
关联的语句之后运行的语句列表。 即使按 Ctrl+C 退出脚本或在脚本中使用 exit
关键字,finally
语句列表也会运行。
语法:
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
语句是一个循环构造,在执行语句之前先测试条件。 如果条件为 false,则不执行语句。
语句语法:
while (<condition>) {
<statements>
}
在 do
语句中使用时,while
是循环构造的一部分,其中的语句列表至少执行一次。
do
循环语法:
do {<statement list>} while (<condition>)