about_Language_Keywords
適用対象: Windows PowerShell 2.0, Windows PowerShell 3.0
トピック
about_Language_Keywords
概要
Windows PowerShell® スクリプト言語のキーワードについて説明します。
詳細説明
Windows PowerShell には、次の言語キーワードがあります。詳細については、キーワードの About トピックと表に続く情報を参照してください。
Keyword Reference
------- ---------
Begin about_Functions, about_Functions_Advanced
Break about_Break, about_Trap
Catch about_Try_Catch_Finally
Continue about_Continue, about_Trap
Data about_Data_Sections
Do about_Do, about_While
DynamicParam about_Functions_Advanced_Parameters
Else about_If
Elseif about_If
End about_Functions, about_Functions_Advanced_Methods
Exit Described in this topic.
Filter about_Functions
Finally about_Try_Catch_Finally
For about_For
ForEach about_ForEach
From Reserved for future use.
Function about_Functions, about_Functions_Advanced
If about_If
In about_ForEach
InlineScript about_InlineScript
Parallel about_Parallel, about_ForEach-Parallel
Param about_Functions
Process about_Functions, about_Functions_Advanced
Return about_Return
Sequence about_Sequence
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
While about_While, about_Do
Workflow about_Workflows
言語キーワード
Begin
-----
DynamicParam、Process、End の各キーワードと共に、関数の本体の一部を指定します。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>}
Continue
--------
スクリプトがループの実行を停止して条件に戻ります。条件が満たされたら、スクリプトはループを再開します。
構文:
while (<condition>) {
<statements>
...
continue
...
<statements>
}
Data
----
スクリプトでは、スクリプトのロジックからデータを分離するセクションを定義します。If ステートメントといくつか限定されたコマンドを含めることもできます。
構文:
data <variable> [-supportedCommand <cmdlet-name>] {<permitted content>}
Do
--
While キーワードまたは Until キーワードと共にループ構造として使用されます。While を使用するループとは異なり、Windows PowerShell はステートメント リストを少なくとも 1 回実行します。
構文:
do {<statement list>} while (<condition>)
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 ステートメント リストは、すべてのオブジェクトがパイプラインから受け取られた後、1 回実行されます。
構文:
function <name> {
DynamicParam {<statement list>}
begin {<statement list>}
process {<statement list>}
end {<statement list>}
}
Exit
----
Windows PowerShell は、スクリプトまたは Windows PowerShell インスタンスを終了します。
'powershell.exe –File <スクリプトへのパス>' を実行した場合、%ERRORLEVEL% 変数は、Exit ステートメントを使用してゼロ以外の値にのみ設定できます。次の例では、ユーザーが「exit 4」を入力してエラー レベル変数値を 4 に設定しています。
C:\Users\bruce\documents\test>type test.ps1
1
2
3
exit 4
C:\Users\bruce\documents\test>powershell -file ./test.ps1
1
2
3
C:\Users\bruce\documents\test>echo %ERRORLEVEL%
4
File パラメーターを指定して powershell.exe を使用する場合は、.ps1 (スクリプト) ファイル自体に、スクリプトが実行されているときに発生したエラーまたは例外を処理するための手順を含める必要があります。Exit ステートメントは、スクリプトの実行後の状態を示すためにのみ使用する必要があります。
構文:
exit
exit <exit code>
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 つまたは複数の名前付きパラメーターを指定できます。関数のステートメント リスト内に、DynamicParam、Begin、Process、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>}
In
--
コレクションの各メンバーを使用するループを作成するために ForEach ステートメントで使用されます。
構文:
ForEach (<item> in <collection>){<statement list>}
InlineScript
------------
共有 Windows PowerShell セッションでワークフロー コマンドを実行します。このキーワードは、Windows PowerShell ワークフローでのみ有効です。
構文:
workflow <verb>-<noun>
{
InlineScript
{
<Command/Expression>
...
}
}
InlineScript キーワードは、標準の共有 (ワークフローではない) セッションでコマンドを実行する InlineScript アクティビティを示します。InlineScript キーワードを使用すると、他の方法ではワークフローで無効になるコマンドを実行したり、データを共有するコマンドを実行したりできます。既定では、InlineScript スクリプト ブロック内のコマンドは、別のプロセスで実行されます。
詳細については、「about_InlineScript」および「ワークフローでの Windows PowerShell コマンドの実行」(https://technet.microsoft.com/library/jj574197.aspx) を参照してください。
Param
-----
関数のパラメーターを定義します。
構文:
function [<scope:>]<name> {
param ([type]<$pname1>[, [[type]<$pname2>]])
<statement list>
}
Parallel
--------
ワークフロー コマンドを同時に任意の順序で実行します。このキーワードは、Windows PowerShell ワークフローでのみ有効です。
Parallel キーワードは、Parallel スクリプト ブロックを示します。Parallel スクリプト ブロック内のコマンドは、同時に任意の順序で実行できます。この機能により、ワークフローのパフォーマンスが大幅に向上します。
構文:
workflow <verb>-<noun>
{
Parallel
{
<Activity>
<Activity>
…
}
}
ForEach キーワードの Parallel パラメーターは、コレクション内の項目を並列に処理します。スクリプト ブロック内のアクティビティは各項目に対して順番に実行されますが、スクリプト ブロックは複数の項目に対して同時に実行でき、項目は任意の順序で処理されます。
構文:
workflow <verb>-<noun>
{
ForEach -Parallel (<item> in <collection>)
{
<Activity>
<Activity>
...
}
}
詳細については、「about_Parallel」と「about_ForEach-Parallel」を参照してください。
Process
-------
DynamicParam、Begin、End の各キーワードと共に、関数の本体の一部を指定します。Process ステートメント リストは、パイプラインから入力を受け取るとき、パイプラインからの要素ごとに 1 回実行されます。パイプラインにオブジェクトがない場合、Process ステートメント リストは実行されません。このコマンドがパイプラインの最初のコマンドである場合、Process ステートメント リストは 1 回実行されます。
構文:
function <name> {
DynamicParam {<statement list>}
begin {<statement list>}
process {<statement list>}
end {<statement list>}
}
Return
------
Windows PowerShell は、スクリプトや関数など現在のスコープを終了し、オプションの式を出力に書き込みます。
構文:
return [<expression>]
Sequence
--------
Parallel スクリプト ブロック内のワークフロー コマンドを順番に実行します。このキーワードは、Windows PowerShell ワークフローでのみ有効です。
構文:
workflow <verb>-<noun>
{
Parallel
{
Sequence
{
<Activity>
}
}
}
Sequence キーワードは、Parallel スクリプト ブロック内にシーケンス ブロックを作成します。Sequence スクリプト ブロック内のコマンドは、定義されている順序で順番に実行されます。
詳細については、「about_Sequence」を参照してください。
Switch
------
パイプラインまたはファイルからの項目に対して実行されるさまざまなアクションを指定します。次の構文モデルのいずれかを使用できます。
構文 1:
switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline )
{
<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
---
ステートメントの実行中にエラーをチェックするステートメント リストを定義します。エラーが発生した場合、Windows PowerShell は Catch ステートメントまたは Finally ステートメントの実行を続けます。エラー タイプには、角かっこが必要です。角かっこの 2 つ目のペアは、エラー タイプがオプションであることを示します。
構文:
try {<statement list>}
catch [[<error type]] {<statement list>}
finally {<statement list>}
Until
-----
ステートメント リストが少なくとも 1 回実行されるループ構造として Do ステートメントで使用されます。
構文:
do {<statement list>} until (<condition>)
While
-----
ステートメント リストが少なくとも 1 回実行されるループ構造として Do ステートメントで使用されます。
構文:
do {<statement list>} while (<condition>)
Workflow
--------
スクリプト ベースの Windows PowerShell ワークフロー、つまり Windows PowerShell 言語で記述されたワークフローを作成します。
Windows PowerShell ワークフローは、Windows PowerShell および Windows Workflow Foundation でサポートされている Windows PowerShell コマンドのタイプです。ワークフローは、複数のコンピューターに影響する、複雑で実行時間の長いタスク向けに設計されています。ネットワーク停止などで中断された場合にはワークフローを回復できるため、状態やデータを失うことなくワークフローを中断および再開できます。
ワークフローは、Windows Workflow Foundation のネイティブ言語である XAML で記述することも、Windows PowerShell 言語で記述することもできます。
スクリプト ベースのワークフローの構文は、関数の構文に似ています。ただし、ワークフローの実行の単位は、コマンドではなくアクティビティです。スクリプト ベースのワークフローで使用されるコマンドレット (およびその他のコマンド) は、アクティビティに暗黙的に変換されます。
言語要素の中には、スクリプトおよび関数では許可されていても、ワークフローでは許可されないものがあります。同様に、ワークフローには、"永続化ポイント" (チェックポイント)、自己中断、並列処理など、スクリプトや関数にない要素を含めることができます。さらに、Workflow キーワードを使用すると Windows PowerShell によって追加される共通パラメーター セットがすべてのワークフローで保持されます。
構文:
workflow <Verb-Noun> {
param ([type]<$pname1> [, [type]<$pname2>])
<statement list>
}
workflow <verb-noun>
{
[CmdletBinding(<Attributes>)]
Param
(
[Parameter(<Arguments>)]
$Param1
)
<statement list>
}
ワークフローの詳細については、「about_Workflows」および TechNet ライブラリの「Windows PowerShell ワークフローについて」(https://go.microsoft.com/fwlink/?LinkID=252592) を参照してください。
関連項目
about_Escape_Characters
about_Special_Characters
about_Wildcards