次の方法で共有


about_Language_Keywords

簡単な説明

PowerShell スクリプト言語のキーワードについて説明します。

詳細な説明

PowerShell には、次の言語キーワードがあります。 詳細については、キーワードに関するトピックと、表に続く情報を参照してください。

Keyword リファレンス
begin about_Functionsabout_Functions_Advanced
break about_Breakabout_Trap
catch about_Try_Catch_Finally
class about_Classes
clean about_Functionsabout_Functions_Advanced_Methods
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_Breakabout_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

dynamicparamprocess、およびendキーワードと共に、関数の本体の 1 つの部分を指定します。 begin ステートメント リストは、パイプラインからオブジェクトを受信する前に 1 回実行されます。

構文:

function <name> {
    dynamicparam {<statement list>}
    begin {<statement list>}
    process {<statement list>}
    end {<statement list>}
}

break

スクリプトがループを終了します。

構文:

while (<condition>) {
   <statements>
   ...

   break
   ...

   <statements>
}

catch

付随する try ステートメント・リストでエラーが発生した場合に実行するステートメント・リストを指定します。 エラーの種類には角かっこが必要です。 角かっこの 2 番目のペアは、エラーの種類が省略可能であることを示します。

構文:

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

clean キーワードは PowerShell 7.3 で追加されました。 このキーワードは、関数の beginprocess 、および end ブロックの後で実行することが保証されるコード ブロックを定義します。 end ブロックとは異なり、clean ブロックは、他のブロックのいずれかで終了エラーが発生した場合でも常に実行されます。

continue

スクリプトがループの実行を停止し、条件に戻ります。 条件が満たされた場合、スクリプトはループを再度開始します。

構文:

while (<condition>) {
   <statements>
   ...

   continue
   ...

   <statements>
}

data

スクリプトで、スクリプト ロジックからデータを分離するセクションを定義します。 また、 if ステートメントといくつかの制限付きコマンドを含めることもできます。

構文:

data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}

do

whileまたは until キーワードと共にループコンストラクトとして使用されます。 PowerShell は、 whileを使用するループとは異なり、ステートメント リストを少なくとも 1 回実行します。

while の構文:

do {<statement list>} while (<condition>)

until の構文:

do {<statement list>} until (<condition>)

dynamicparam

beginprocess、およびendキーワードと共に、関数の本体の 1 つの部分を指定します。 動的パラメーターは実行時に追加されます。

構文:

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

dynamicparambegin、およびendキーワードと共に、関数の本体の 1 つの部分を指定します。 end ステートメント リストは、パイプラインからすべてのオブジェクトを受信した後、1 回実行されます。

構文:

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]::MinValue[int]::MaxValue の間の任意の数が許可されます。

Unix では、 [byte]::MinValue[byte]::MaxValue の間の正の数値のみが許可されます。 -1から-255までの範囲の負の数は、256 を加算することで自動的に正の数に変換されます。 たとえば、 -2254に変換されます。

PowerShell では、 exit ステートメントによって $LASTEXITCODE 変数の値が設定されます。 Windows コマンド シェル (cmd.exe) では、exit ステートメントによって %ERRORLEVEL% 環境変数の値が設定されます。

数値以外の引数またはプラットフォーム固有の範囲外の引数は、 0の値に変換されます。

次の例では、スクリプト ファイルのtest.ps1exit 4を追加して、エラー レベル変数の値を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されます。

filter

ステートメント リストが入力オブジェクトごとに 1 回実行される関数を指定します。 process ブロックのみを含む関数と同じ効果があります。

構文:

filter <name> {<statement list>}

finally

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

from

将来の使用のために予約済み。

function

再利用可能なコードの名前付きステートメント リストを作成します。 関数が属するスコープに名前を付けることができます。 param キーワードを使用して、1 つ以上の名前付きパラメーターを指定することもできます。 関数ステートメントの一覧には、 dynamicparambeginprocess、および end ステートメント の一覧を含めることができます。

構文:

function [<scope:>]<name> {
   param ([type]<$pname1> [, [type]<$pname2>])
   dynamicparam {<statement list>}
   begin {<statement list>}
   process {<statement list>}
   end {<statement list>}
}

また、関数名の後にステートメント リストの外部で 1 つ以上のパラメーターを定義することもできます。

構文:

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 コマンドレット、IntelliSense、タブ補完結果の既定の結果からクラス メンバーを非表示にします。

構文:

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

dynamicparambegin、およびendキーワードと共に、関数の本体の一部を指定します。 processステートメント リストがパイプラインから入力を受け取ると、process ステートメント リストはパイプラインの要素ごとに 1 回実行されます。 パイプラインでオブジェクトが提供されない場合、 process ステートメント の一覧は実行されません。 コマンドがパイプラインの最初のコマンドである場合、 process ステートメント リストは 1 回実行されます。

構文:

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

エラーが発生した場合に実行するステートメント リストを定義します。 エラーの種類には角かっこが必要です。 角かっこの 2 番目のペアは、エラーの種類が省略可能であることを示します。

構文:

trap [[<error type>]] {<statement list>}

try

ステートメントの実行中にエラーをチェックするステートメント リストを定義します。 エラーが発生した場合、PowerShell は catch ステートメントまたは finally ステートメントで引き続き実行されます。 エラーの種類には角かっこが必要です。 角かっこの 2 番目のペアは、エラーの種類が省略可能であることを示します。

構文:

try {<statement list>}
catch [[<error type>]] {<statement list>}
finally {<statement list>}

until

do ステートメントで、ステートメント リストが少なくとも 1 回実行されるループコンストラクトとして使用されます。

構文:

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は、ステートメント リストが少なくとも 1 回実行されるループコンストラクトの一部です。

do ループ構文:

do {<statement list>} while (<condition>)

関連項目