關於語言關鍵詞
簡短描述
描述 PowerShell 腳本語言中的關鍵詞。
詳細描述
PowerShell 具有下列語言關鍵詞。 如需詳細資訊,請參閱 關鍵詞的about主題,以及數據表後面的資訊。
關鍵字 | 參考 |
---|---|
開始 | about_Functions,about_Functions_Advanced |
中斷 | about_Break,about_Trap |
Catch | 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 |
交換器 | about_Switch |
Throw | about_Throw,about_Functions_Advanced_Methods |
陷阱 | about_Trap、 about_Break、 about_Try_Catch_Finally |
嘗試 | about_Try_Catch_Finally |
Until | 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>
}
Catch
指定語句清單,以在隨附的 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
關鍵詞作為迴圈建構使用。 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
與和 Else
關鍵詞搭配If
使用,以指定其他條件。 關鍵詞 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
正數。 透過範圍-1
-255
中的負數會自動轉譯為正數,方法是新增 256。 例如, -2
會 254
轉換成 。
在 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
腳本從未處理的例外狀況終止時。
篩選
指定語句清單針對每個輸入物件執行一次的函式。 它的效果與只包含 Process 區塊的函式相同。
語法:
filter <name> {<statement list>}
最後
定義語句清單,此清單會在與 Try 和 Catch 相關聯的語句之後執行。 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> }
寄件者
保留供未來使用。
函式
建立可重複使用程式代碼的具名語句清單。 您可以將函式所屬的範圍命名為 。 而且,您可以使用 關鍵詞來指定一或多個具名參數 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 的預設結果,以及 IntelliSense 和索引標籤完成結果中的 Get-Member
類別成員。
語法:
Hidden [data type] $member_name
位於
在語句中 ForEach
用來建立迴圈,以使用集合的每個成員。
語法:
ForEach (<item> in <collection>){<statement list>}
InlineScript
在共用PowerShell工作流程命令。 此關鍵詞只在PowerShell工作流程中有效。
語法:
workflow <verb>-<noun>
{
InlineScript
{
<Command/Expression>
...
}
}
關鍵詞 InlineScript
指出 InlineScript
活動,它會在共用的標準 (非工作流程) 會話中執行命令。 您可以使用 InlineScript
關鍵詞來執行工作流程中無效的命令,以及執行共用數據的命令。 根據預設,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
相當於一系列 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 [[<error type>]] {<statement list>}
嘗試
定義語句執行時要檢查錯誤的語句清單。 如果發生錯誤,PowerShell 會繼續在 Catch
或 Finally
語句中執行。 錯誤類型需要方括弧。 第二對括號表示錯誤類型是選擇性的。
語法:
try {<statement list>}
catch [[<error type>]] {<statement list>}
finally {<statement list>}
Until
在語句中 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>)