关于语言关键字
简短说明
描述 PowerShell 脚本语言中的关键字。
详细说明
PowerShell 具有以下语言关键字。 有关详细信息,请参阅关键字 (keyword) 的 about 主题和表后的信息。
关键字 | 参考 |
---|---|
开始 | about_Functions、 about_Functions_Advanced |
中断 | about_Break、 about_Trap |
捕获 | about_Try_Catch_Finally |
类 | about_Classes |
继续 | about_Continue、 about_Trap |
数据 | about_Data_Sections |
定义 | 保留以供将来使用 |
要 | about_Do、 about_While |
DynamicParam | about_Functions_Advanced_Parameters |
Else | about_If |
Elseif | about_If |
结束 | about_Functions、 about_Functions_Advanced_Methods |
枚举 | about_Enum |
退出 | 本主题中所述 |
筛选器 | about_Functions |
最终 | about_Try_Catch_Finally |
For | about_For |
ForEach | about_ForEach |
源 | 保留以供将来使用 |
函数 | about_Functions、 about_Functions_Advanced |
Hidden | about_Hidden |
如果 | about_If |
在 | about_ForEach |
Param | about_Functions |
进程 | about_Functions、 about_Functions_Advanced |
返回 | about_Return |
静态 | about_Classes |
Switch | about_Switch |
Throw | about_Throw、 about_Functions_Advanced_Methods |
Trap | about_Trap、about_Break、about_Try_Catch_Finally |
尝试 | about_Try_Catch_Finally |
截止 | about_Do |
使用 | about_Using、 about_Classes |
Var | 保留以供将来使用 |
While | about_While、about_Do |
语言关键字
开始
指定函数主体的一部分,以及 DynamicParam
、 Process
和 End
关键字。 语句 Begin
列表在从管道接收任何对象之前运行一次。
语法:
function <name> {
DynamicParam {<statement list>}
begin {<statement list>}
process {<statement list>}
end {<statement list>}
}
中断
导致脚本退出循环。
语法:
while (<condition>) {
<statements>
...
break
...
<statements>
}
捕获
指定在随附的 Try 语句列表中发生错误时要运行的语句列表。 错误类型需要括号。 第二对括号指示错误类型是可选的。
语法:
try {<statement list>}
catch [[<error type>]] {<statement list>}
类
在 PowerShell 中指定新类。
语法:
class <class-name> {
[[hidden] [static] <property-definition> ...]
[<class-name>([argument-list>]) {<constructor-statement-list>} ...]
[[hidden] [static] <method-definition> ...]
}
继续
导致脚本停止运行循环并返回到条件。 如果满足条件,则脚本将再次开始循环。
语法:
while (<condition>) {
<statements>
...
continue
...
<statements>
}
数据
在脚本中, 定义将数据与脚本逻辑隔离的部分。 还可以包含 If
语句和一些有限的命令。
语法:
data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}
要
与 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>}
结束
指定函数主体的一部分,以及 DynamicParam
、 Begin
和 End
关键字。 语句 End
列表在从管道收到所有对象后运行一次。
语法:
function <name> {
DynamicParam {<statement list>}
begin {<statement list>}
process {<statement list>}
end {<statement list>}
}
枚举
enum
用于声明枚举;由一组名为枚举器列表的命名标签组成的非重复类型。
语法:
enum <enum-name> {
<label> [= <int-value>]
...
}
退出
导致 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
为 。
筛选器
指定语句列表针对每个输入对象运行一次的函数。 它与仅包含 Process 块的函数具有相同的效果。
语法:
filter <name> {<statement list>}
最终
定义一个语句列表,该列表在与 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> }
源
保留供将来使用。
函数
创建可重用代码的命名语句列表。 可以命名函数所属的范围。 并且,可以使用 关键字 (keyword) 指定一个或多个命名参数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 (<condition>) {<statement list>}
Hidden
从 cmdlet 的默认结果 Get-Member
以及 IntelliSense 和 Tab 补全结果中隐藏类成员。
语法:
Hidden [data type] $member_name
在
在 语句中 ForEach
用于创建使用集合的每个成员的循环。
语法:
ForEach (<item> in <collection>){<statement list>}
InlineScript
在共享 PowerShell 会话中运行工作流命令。 此关键字 (keyword) 仅在 PowerShell 工作流中有效。
语法:
workflow <verb>-<noun>
{
InlineScript
{
<Command/Expression>
...
}
}
关键字 (keyword) InlineScript
指示一个InlineScript
活动,该活动在共享标准 (非工作流) 会话中运行命令。 可以使用 InlineScript
关键字 (keyword) 运行工作流中无效的命令,以及运行共享数据的命令。 默认情况下,InlineScript 脚本块中的命令在单独的进程中运行。
有关详细信息,请参阅 在工作流中运行 PowerShell 命令。
Param
定义函数中的参数。
语法:
function [<scope:>]<name> {
param ([type]<$pname1>[, [[type]<$pname2>]])
<statement list>
}
进程
指定函数主体的一部分,以及 DynamicParam
、 Begin
和 End
关键字。 Process
当语句列表从管道接收输入时,Process
语句列表针对管道中的每个元素运行一次。 如果管道未提供对象,则 Process
语句列表不会运行。 如果该命令是管道中的第一个命令,则 Process
语句列表运行一次。
语法:
function <name> {
DynamicParam {<statement list>}
begin {<statement list>}
process {<statement list>}
end {<statement list>}
}
返回
使 PowerShell 离开当前范围(如脚本或函数),并将可选表达式写入输出。
语法:
return [<expression>]
静态
指定所定义的属性或方法对于在其中定义的类的所有实例都是通用的。
有关用法示例,请参阅 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>}
尝试
定义要在语句运行时检查错误的语句列表。 如果发生错误,PowerShell 将继续在 或 Finally
语句中Catch
运行。 错误类型需要括号。 第二对括号指示错误类型是可选的。
语法:
try {<statement list>}
catch [[<error type>]] {<statement list>}
finally {<statement list>}
截止
在 语句中 Do
用作循环构造,其中语句列表至少执行一次。
语法:
do {<statement list>} until (<condition>)
使用
允许指示会话中使用的命名空间。 类和成员只需较少的键入即可提及它们。 还可以包含模块中的类。
语法 #1:
using namespace <.Net-framework-namespace>
语法 #2:
using module <module-name>
While
语句 while
是一个循环构造,其中条件在执行语句之前进行测试。 如果条件为 FALSE,则不执行语句。
语句语法:
while (<condition>) {
<statements>
}
在 语句中使用 Do
时, while
是循环构造的一部分,其中语句列表至少执行一次。
Do 循环语法:
do {<statement list>} while (<condition>)