about_Language_Keywords

簡短描述

描述 PowerShell 指令碼語言中的關鍵字。

完整描述

PowerShell 具有下列語言關鍵字。 如需詳細資訊,請參閱 關鍵字的 about 主題,以及資料表後面的資訊。

關鍵字 參考
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 關鍵字作為迴圈建構使用。 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 使用,以指定預設語句清單。

語法:

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

elseif

與 和 else 關鍵字搭配 if 使用,以指定其他條件。 關鍵字 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 正數。 透過 範圍 -1 -255 中的負數會自動轉譯為正數,方法是新增 256。 例如, -2254 轉換成 。

在 PowerShell 中 exit ,語句會設定變數的值 $LASTEXITCODE 。 在Windows命令殼層 () 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

定義語句清單,此清單會在與 和 catch 相關聯的 try 語句之後執行。 finally即使您按下CTRL + C來離開腳本,或是在腳本中使用 關鍵字, 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 關鍵字來指定一或多個具名參數。 在函式語句清單中,您可以包含 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和索引標籤完成結果的預設結果中的 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 會繼續在 catchfinally 語句中執行。 錯誤類型需要括弧。 第二組括弧表示錯誤類型是選擇性的。

語法:

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>)

另請參閱