次の方法で共有


4. 種類

編集メモ

重要

Windows PowerShell 言語仕様 3.0 は、2012 年 12 月に公開され、Windows PowerShell 3.0 に基づいています。 この仕様では、PowerShell の現在の状態は反映されません。 現在の状態を反映するようにこのドキュメントを更新する予定はありません。 このドキュメントは、履歴参照のためにここに示されています。

仕様文書は、Microsoft ダウンロード センターから Microsoft Word 文書として入手できます。https://www.microsoft.com/download/details.aspx?id=36389 Word 文書は、Microsoft Learn でプレゼンテーション用に変換されています。 変換中に、Docs プラットフォームの書式設定に対応するために、いくつかの編集の変更が行われました。 一部の入力ミスと軽微なエラーが修正されました。

PowerShell では、各値には型があり、型は 2 つの主要なカテゴリのいずれかに分類されます。値型参照型。 値型の一般的な int型について考えてみましょう。 int 型の値は完全に自己完結型です。その値を表すために必要なすべてのビットがその値に格納され、その値内のすべてのビット パターンがその型の有効な値を表します。 次に、参照型の一般的な配列型 int[]について考えてみましょう。 配列型のいわゆる値は、配列要素が実際に格納されているオブジェクトへの参照、または値が $null である null 参照を保持できます。 2 つの型カテゴリの重要な違いは、割り当て時のセマンティクスの違いによって最もよく示されます。 例えば

$i = 100 # $i designates an int value 100
$j = $i # $j designates an int value 100, which is a copy

$a = 10,20,30 # $a designates an object[], Length 3, value 10,20,30
$b = $a # $b designates exactly the same array as does $a, not a copy
$a[1] = 50 # element 1 (which has a value type) is changed from 20 to 50
$b[1] # $b refers to the same array as $a, so $b[1] is 50

ご覧のように、参照型の値の代入には、浅いコピーが含まれます。つまり、実際の値ではなく、オブジェクトへの参照のコピーです。 これに対し、ディープ コピー では、オブジェクトのコピーも作成する必要があります。

数値 型は、整数または小数部の値を表現でき、それらの値に対する算術演算をサポートする型です。 数値型のセットには、整数 (§4.2.3) と実数 (§4.2.4) 型が含まれますが、ブール (§4.2.1) または char (§4.2.2) は含まれません。 実装では、他の数値型 (符号付きバイト、符号なし整数、その他のサイズの整数など) を提供できます。

コレクション は、同じ型を持つ必要のない 1 つ以上の関連項目のグループです。 コレクション型の例としては、配列、スタック、キュー、リスト、ハッシュ テーブルがあります。 プログラムは、コレクション内の要素に対して を列挙 (またはを反復処理 ) し、各要素に一度に 1 つずつアクセスできます。 これを行う一般的な方法は、foreach ステートメント (§8.4.4) と ForEach-Object コマンドレットです。 列挙子を表すオブジェクトの型については、§4.5.16で説明されています。

この章では、特定の型のアクセス可能なメンバーを一覧表示するテーブルがあります。 メソッドの場合、 は、returnType argumentTypeList形式で記述されます。 引数の型リストが長すぎてその列に収まらない場合は、代わりに Purpose 列に表示されます。

その他の整数型は、、および で、すべて System名前空間にあります。

多くのコレクション クラスは、System.Collections または System.Collections.Generic 名前空間 の一部として定義されています。 ほとんどのコレクション クラスは、インターフェイス ICollectionIComparerIEnumerableIListIDictionary、および IDictionaryEnumerator とその一般的な同等物を実装します。

一部の型には短縮名を使用することもできます。 詳細については、「about_Type_Accelerators」を参照してください。

4.1 特殊タイプ

4.1.1 void 型

この型はインスタンス化できません。 キャスト演算子 (§7.2.9) を使用して値を明示的に破棄する手段を提供します。

4.1.2 null 型

null 型 には、1 つのインスタンスがあり、自動変数$null (§2.3.2.2) は null 値とも呼ばれます。 この値は、参照コンテキストで "nothingness" を表す手段を提供します。 この型の特性は指定されていません。

4.1.3 オブジェクトの種類

null 型 (§4.1.2) を除く PowerShell のすべての型は、型オブジェクトから直接または間接的に派生するため、オブジェクトはすべての null 以外の型の最終的な基本型です。 型オブジェクトに対して制約された変数 (§5.3) は、実際にはまったく制約されません。これは、任意の型の値を含むことができるためです。

4.2 値型

4.2.1 ブール

ブール型は boolです。 この型には、自動変数 $false$trueで表される FalseTrueの 2 つの値があります (§2.3.2.2)。

PowerShell では、boolSystem.Booleanにマップされます。

4.2.2 文字

文字値には char 型があり、UTF-16 でエンコードされた 16 ビット Unicode コード ポイントを格納できます。

char 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) char char 型の可能な最大値
最小値 静的プロパティ (読み取り専用) char char 型の可能な最小値
IsControl スタティックメソッド bool/char 文字がコントロール文字かどうかをテストします
IsDigit 静的メソッド bool/char 文字が 10 進数字かどうかをテストします
IsLetter スタティック メソッド bool/char 文字が英字かどうかをテストします
IsLetterOrDigit 静的メソッド bool/char 文字が 10 進数字または英字であるかどうかをテストします
IsLower 静的メソッド bool/char 文字が小文字かどうかをテストします
IsPunctuation static メソッド bool/char 文字が句読点であるかどうかをテストします
IsUpper スタティックメソッド bool/char 文字が大文字の英字かどうかをテストします
IsWhiteSpace スタティックメソッド bool/char 文字が空白文字かどうかをテストします。
ToLower 静的メソッド char/string 文字を小文字に変換します。
ToUpper 静的メソッド char/string 文字を大文字に変換します。

Windows PowerShell: char は System.Char にマップされます。

4.2.3 整数

負の値に対して 2 の補数表現を使用する 2 つの符号付き整数型があります。

  • intは、32 ビットを使用して、範囲が -2147483648 から +2147483647 まで含まれます。
  • long 型では、64 ビットが使用され、-9223372036854775808 から +9223372036854775807 の範囲が表されます (両端を含む)。

type int には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) int int 型の可能な最大値
最小値 静的プロパティ (読み取り専用) 整数 (int) int 型の可能な最小の値

型 long には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) long long 型の可能な最大値
最小値 静的プロパティ (読み取り専用) long long 型の可能な最小値

1 つの符号なし整数型があります。

  • byte型。8 ビットを使用し、0 ~ 255 の範囲を指定します。

byte には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) バイト byte 型に格納できる最大の値
最小値 静的プロパティ (読み取り専用) バイト byte型のデータ型における可能な最小値

PowerShell では、byteint、および long はそれぞれ、System.ByteSystem.Int32、および System.Int64にマップされます。

4.2.4 実数

4.2.4.1 float と double

次の 2 種類の実数 (または浮動小数点) があります。

  • float は、32 ビットの IEEE 単精度表現を使用します。
  • double は、64 ビット IEEE 倍精度表現を使用します。

3 番目の型名 singleは、型 floatのシノニムです。float は、この仕様全体で使用されます。

この仕様では、float 型と double 型のサイズと表現が定義されていますが、実装では中間結果に拡張精度を使用できます。

型 float には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) 浮動小数 float 型に格納できる最大の値
最小値 静的プロパティ (読み取り専用) 浮動小数 float 型に格納できる最小の値
NaN 静的プロパティ (読み取り専用) 浮動小数 定数値 Not-a-Number (非数)
NegativeInfinity 静的プロパティ (読み取り専用) 浮動小数 負の無限大の定数値
PositiveInfinity 静的プロパティ (読み取り専用) 浮動小数 正の無限大の定数値

double 型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) double double 型に格納できる最大の値
最小値 静的プロパティ (読み取り専用) double double 型に格納できる最小の値
NaN 静的プロパティ (読み取り専用) double 定数値 Not-a-Number (非数)
NegativeInfinity 静的プロパティ (読み取り専用) double 負の無限大の定数値
PositiveInfinity 静的プロパティ (読み取り専用) double 正の無限大の定数値

PowerShell では、floatdouble がそれぞれ System.SingleSystem.Doubleにマップされます。

4.2.4.2 10 進数

decimal 型は 128 ビット表現を使用します。 少なくとも、スケール がサポートされ、0 <= s<が28以上であること、および値の範囲が -79228162514264337593543950335 から 79228162514264337593543950335 までである必要があります。decimal の実際の表現は実装に依存します。

型 decimal には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
最大値 静的プロパティ (読み取り専用) decimal decimal 型に格納できる最大の値
最小値 静的プロパティ (読み取り専用) decimal decimal 型に格納できる最小の値

手記

実数には スケールという特性があり、これは小数点の右側の桁数を表します。 たとえば、値 2.340 の小数点以下桁数は 3 で、末尾のゼロは重要です。 2 つの 10 進数の実数を加算または減算すると、結果のスケールは 2 つのスケールの中で大きくなります。 たとえば、1.0 + 2.000 は 3.000、5.0 から 2.00 は 3.00 です。 2 つの 10 進数の実数を乗算すると、結果のスケールは 2 つのスケールの合計になります。 たとえば、1.0 * 2.000 は 2.0000 です。 2 つの 10 進実数を除算すると、結果の小数点以下の桁数は、最初の数の小数点以下の桁数から2 番目の数の小数点以下の桁数を引いたものになります。 たとえば、4.00000/2.000 は 2.00 です。 ただし、正しい結果を保持するために必要なスケールより小さくすることはできません。 たとえば、3.000/2.000、3.00/2.000、3.0/2.000、3/2 はすべて 1.5 です。

PowerShell では、decimalSystem.Decimalにマップされます。 decimal の表現は次のとおりです。

  • 4 つの int 値の配列と見なされる場合、次の要素が含まれます。
    • インデックス 0 (ビット 0 から 31) には、10 進係数の下位 32 ビットが含まれます。
    • インデックス 1 (ビット 32 ~ 63) には、10 進係数の中間 32 ビットが含まれます。
    • インデックス 2 (ビット 64 から 95) には、10 進係数の上位 32 ビットが含まれます。
    • インデックス 3 (ビット 96 から 127) には、次のように符号ビットと小数点以下桁数が含まれます。
      • ビット 0 から 15 は 0 です
      • ビット 16 から 23 には、スケールが値 0 から 28 として含まれています
      • ビット 24 から 30 はゼロです
      • ビット 31 は符号です (正の場合は 0、負の場合は 1)。

4.2.5 スイッチの種類

この型は、コマンド内のパラメーターの型を制約するために使用されます (§8.10.5)。 対応するパラメーター名を持つ引数が存在する場合、パラメーター は$trueテストします。それ以外の場合は、$falseテストします。

PowerShell では、switchSystem.Management.Automation.SwitchParameterにマップされます。

4.2.6 列挙型

列挙型は、その列挙型のオブジェクトに割り当てることができるすべての可能な値を表す名前付き定数のセットを定義する型です。 場合によっては、値のセットは、一度に 1 つの値しか表現できない場合があります。 それ以外の場合、値のセットは 2 の個別の累乗であり、-bor 演算子 (§7.8.5) を使用して、同じオブジェクトで複数の値をエンコードできます。

PowerShell 環境には、次のセクションで説明するように、さまざまな列挙型が用意されています。

4.2.6.1 Action-Preference 型

この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
続ける 列挙定数 PowerShell ランタイムは処理を続行し、アクションが発生したことをユーザーに通知します。
問い合わせる 列挙定数 PowerShell ランタイムは処理を停止し、続行する方法をユーザーに求めます。
静かに続行 列挙定数 PowerShell ランタイムは、アクションが発生したことをユーザーに通知することなく処理を続行します。
止める 列挙定数 PowerShell ランタイムは、アクションが発生すると処理を停止します。

PowerShell では、この種類は System.Management.Automation.ActionPreferenceです。

4.2.6.2 Confirm-Impact 型

この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
列挙定数 実行されるアクションでは、ハード ディスクの再フォーマットなど、データが失われるリスクが高くなります。
列挙定数 実行されたアクションは、データを失うリスクが低くなります。
中程度 列挙定数 実行されたアクションは、データを失うリスクが中程度です。
None 列挙定数 アクションを確認しないでください (確認のすべての要求を抑制します)。

PowerShell では、この種類は System.Management.Automation.ConfirmImpactです。

4.2.6.3 File-Attributes 型

この実装定義型には、次のアクセス可能なメンバーがあり、これを組み合わせることができます。

メンバー メンバーの種類 目的
アーカイブ 列挙定数 ファイルのアーカイブ状態。 アプリケーションでは、この属性を使用して、バックアップまたは削除のためにファイルをマークします。
Compressed 列挙定数 ファイルは圧縮されます。
デバイス 将来の使用のために予約されています。
ディレクトリ 列挙定数 ファイルはディレクトリです。
暗号化 列挙定数 ファイルまたはディレクトリは暗号化されます。 ファイルの場合、これはファイル内のすべてのデータが暗号化されることを意味します。 ディレクトリの場合は、暗号化が新しく作成されたファイルとディレクトリの既定値であることを意味します。
[非表示] 列挙定数 ファイルは非表示であるため、通常のディレクトリ 一覧には含まれません。
正常 列挙定数 ファイルは通常のものであり、他の属性は設定されていません。 この属性は、単独で使用する場合にのみ有効です。
NotContentIndexed 列挙定数 ファイルは、オペレーティング システムのコンテンツ インデックス作成サービスによってインデックスが作成されません。
オフライン 列挙定数 ファイルはオフラインです。 ファイルのデータはすぐには使用できません。
ReadOnly 列挙定数 ファイルは読み取り専用です。
ReparsePoint 列挙定数 ファイルには再解析ポイントが含まれています。これは、ファイルまたはディレクトリに関連付けられているユーザー定義データのブロックです。
SparseFile 列挙定数 ファイルはスパース ファイルです。 スパース ファイルは通常、データがほとんどゼロである大きなファイルです。
システム 列挙定数 ファイルはシステム ファイルです。 ファイルはオペレーティング システムの一部であるか、オペレーティング システムによってのみ使用されます。
一時的 列挙定数 ファイルは一時的なものです。 ファイル システムは、大量ストレージにデータをフラッシュするのではなく、アクセスを高速化するためにすべてのデータをメモリに保持しようとします。 一時ファイルは、不要になったらすぐにアプリケーションによって削除する必要があります。

PowerShell では、この型は FlagsAttribute 属性を持つ System.IO.FileAttributes です。

4.2.6.4 Regular-Expression-Option 型

この実装定義型には、次のアクセス可能なメンバーがあり、これを組み合わせることができます。

メンバー メンバーの種類 目的
IgnoreCase 列挙定数 照合で大文字と小文字を区別しないことを指定します。
None 列挙定数 オプションが設定されていないことを指定します。

実装では、他の値が提供される場合があります。

PowerShell では、この型は System.Text.RegularExpressions.RegexOptions で属性 FlagsAttributeです。 以下の追加の値が定義されています: CompiledCultureInvariantECMAScriptExplicitCaptureIgnorePatternWhitespaceMultilineRightToLeftSingleline

4.3 参照型

4.3.1 文字列

文字列値には文字列型があり、それぞれ UTF-16 でエンコードされた 16 ビット Unicode コード ポイントを含む char 型の 0 個以上の文字の不変シーケンスです。

型文字列には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
長さ インスタンス プロパティ int (読み取り専用) 文字列内の文字数を取得します。
トゥー・ローワー (ToLower) インスタンスメソッド 小文字に相当する文字列を含む新しい文字列を作成します。
トゥアッパー インスタンス メソッド 対応する大文字が含まれる新しい文字列を作成します

PowerShell では、stringSystem.Stringにマップされます。

4.3.2 配列

すべての配列型は、Array型から派生します。 この型には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
長さ インスタンス プロパティ (読み取り専用) int 配列内の要素の数
Rank インスタンスプロパティ (読み取り専用) int 配列内の次元の数
コピー 静的メソッド void/目的列を参照

ある配列から別の配列に要素の範囲をコピーします。 ソース ソース配列、コピー先 コピー先の配列、カウント はコピーする要素の数、sourceIndexdestinationIndex は、それぞれの配列内の開始位置である 4 つのバージョンがあります。

Copy(source, destination, int count)
Copy(source, destination, long count)
Copy(source, sourceIndex, destination, destinationIndex, int count)
Copy(source, sourceIndex, destination, destinationIndex, long count)

GetLength Instance メソッド (読み取り専用) int/なし

特定のディメンション内の要素の数

GetLength(int dimension)

配列の詳細については、§9 参照してください。

PowerShell では、ArraySystem.Arrayにマップされます。

4.3.3 ハッシュテーブル

Type Hashtable には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
数える インスタンス プロパティ int Hashtable 内のキーと値のペアの数を取得します。
[キー] インスタンス プロパティ 実装定義 すべてのキーのコレクションを取得します。
価値観 インスタンス プロパティ 実装定義 すべての値のコレクションを取得します。
remove インスタンス メソッド 無効/なし 指定されたキー/値を削除します

ハッシュテーブルの詳細については、§10 を参照してください。

PowerShell では、HashtableSystem.Collections.Hashtableにマップされます。 Hashtable 要素は DictionaryEntry型のオブジェクトに格納され、Keys および Values によって返されるコレクションには型 ICollectionがあります。

4.3.4 xml 型

型 xml は、W3C ドキュメント オブジェクト モデル (DOM) レベル 1 コアとコア DOM レベル 2 を実装します。 DOM は、XML ドキュメントのメモリ内 (キャッシュ) ツリー表現であり、このドキュメントのナビゲーションと編集を可能にします。 この型は、添字演算子 [] (§7.1.4.4) をサポートしています。

PowerShell では、xmlSystem.Xml.XmlDocumentにマップされます。

4.3.5 正規表現の種類

regex は、正規表現処理をサポートする機械を提供します。 これは、対応する引数に正規表現が含まれる可能性があるパラメーター (§5.3) の型を制限するために使用されます。

PowerShell では、regexSystem.Text.RegularExpressions.Regexにマップされます。

4.3.6 ref 型

通常、引数は値によってコマンドに渡されます。 何らかの値を持つ引数の場合は、値のコピーが渡されます。 何らかの参照型を持つ引数の場合、参照のコピーが渡されます。

type ref には、引数を参照によってコマンドに渡すことができる機構が用意されているため、コマンドは引数の値を変更できます。 型 ref には、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
価値 インスタンスプロパティ (読み取り/書き込み) 参照される値の型。 参照される値を取得/設定します。

次の関数定義と呼び出しについて考えてみましょう。

function Doubler {
    param ([ref]$x) # parameter received by reference
    $x.Value *= 2.0 # note that 2.0 has type double
}

$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type double, value 8.0

$numberが型制約を受ける場合を考えてみましょう。

[int]$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type int, value 8

次に示すように、引数とそれに対応するパラメーターの両方を ref宣言する必要があります。

PowerShell では、refSystem.Management.Automation.PSReferenceにマップされます。

4.3.7 スクリプトブロックの種類

scriptblock は、1 つの単位として使用できるスクリプト テキストのプリコンパイル済みブロック (§7.1.8) を表します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
属性 インスタンス プロパティ「読み取り専用」 属性のコレクション スクリプト ブロックの属性を取得します。
File インスタンス プロパティ (読み取り専用) スクリプト ブロックが定義されているファイルの名前を取得します。
モジュール インスタンスプロパティ (読み取り専用) 実装が定義されている ([§4.5.12][§4.5.12]) スクリプト ブロックが定義されているモジュールに関する情報を取得します。
GetNewClosure インスタンス メソッド スクリプトブロック
/なし
モジュールにバインドされているスクリプト ブロックを取得します。 呼び出し元のコンテキストにあるローカル変数はすべて、モジュールにコピーされます。
Invoke インスタンス メソッド object/object[] のコレクション 指定した引数を使用してスクリプト ブロックを呼び出し、結果を返します。
InvokeReturnAsIs インスタンス メソッド object/object[] 指定した引数を使用してスクリプト ブロックを呼び出し、生成されたすべてのオブジェクトを返します。
作成​​ 静的メソッド スクリプトブロック
/string
指定したスクリプトを含む新しい scriptblock オブジェクトを作成します。

PowerShell では、scriptblockSystem.Management.Automation.ScriptBlockにマップされます。 Invoke は、PSObjectのコレクションを返します。

4.3.8 math 型

math は、数学計算に役立ついくつかの定数とメソッドへのアクセスを提供します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
E 静的プロパティ (読み取り専用) double 自然対数底
PI 静的プロパティ (読み取り専用) double 円の円周の直径に対する比率
Abs 静的メソッド numeric/numeric 絶対値 (戻り値の型は、渡された引数の型と同じです)
Acos スタティックメソッド double/double コサインが指定された数値である角度
Asin 静的メソッド double/double サインが指定された値になる角度
Atan 静的メソッド double/double タンジェントが指定された数値である角度
Atan2 スタティックメソッド double/double y、double x タンジェントが指定された 2 つの値 xy の商になる角度
天井 静的メソッド

decimal/decimal

double/double

指定した数値以上の最小整数
Cos 静的メソッド double/double 指定された角度のコサイン
Cosh スタティックメソッド double/double 指定された角度の双曲線コサイン
Exp 静的メソッド double/double 指定された値で e を累乗した値
スタティックメソッド

decimal/decimal

double/double

指定した数値以下の最大整数
ログ 静的メソッド

double/double number

double/double number、double base

底 e または底 を使用した数値の対数
Log10 スタティックメソッド double/double 指定した数値の 10 を底とする対数
マックス スタティックメソッド numeric/numeric 指定された 2 つの数値の大きい値 (戻り値の型は、渡された引数の型と同じです)
Min スタティック メソッド numeric/numeric、numeric 指定された 2 つの数値の小さい値 (戻り値の型は、渡された引数の型と同じです)
Pow 静的メソッド double/double x、double y 指定された数値 xy 乗した値
Sin スタティック メソッド double/double 指定された角度のサイン
Sinh 静的メソッド double/double 指定された角度の双曲線サイン
Sqrt 静的メソッド double/double 指定した数値の平方根
Tan 静的メソッド double/double 指定された角度のタンジェント
Tanh スタティックメソッド double/double 指定された角度の双曲線タンジェント

PowerShell では、MathSystem.Mathにマップされます。

4.3.9 ordered 型

ordered は、変換にのみ使用される擬似型です。

4.3.10 pscustomobject 型

pscustomobject は、変換にのみ使用される擬似型です。

4.4 ジェネリック型

多くのプログラミング言語と環境には、"特殊化" できる型が用意されています。 これらの型の多くは、コンテナー型と呼ばれます。これらの型のインスタンスには、他の種類のオブジェクトを含めることができます。 値のスタックを表すことができる Stack と呼ばれる型を考えてみましょう。これはプッシュオンおよびポップオフできます。 通常、スタックのユーザーは、そのスタックに 1 種類のオブジェクトのみを格納したいと考えています。 ただし、言語または環境で型の特殊化がサポートされていない場合は、型要素が異なるだけで同じタスクを実行していても、型 Stack の複数の異なるバリアントを実装する必要があります。

型の特殊化を使用すると、ジェネリック型 を実装できるため、使用される型の一部のサブセットを処理するように制限できます。 例えば

  • 文字列を保持するために特殊化されたジェネリック スタック型は、Stack[string]として書き込まれる場合があります。
  • 関連付けられた文字列値を持つ int キーを保持するために特殊化されたジェネリック ディクショナリ型は、Dictionary[int,string]として書き込まれる場合があります。
  • 文字列のスタックのスタックは、Stack[Stack[string]] のように記述される場合があります。

PowerShell は組み込みのジェネリック型を定義しませんが、ホスト環境で提供されている場合は、そのような型を使用できます。 §7.1.10の構文を参照してください。

上記で提案 Stack[string] 型の完全な名前は System.Collections.Generic.Stack[string]です。 上記で提案 Dictionary[int,string] 型の完全な名前は System.Collections.Generic.Dictionary[int,string]です。

4.5 匿名型

状況によっては、PowerShell の実装によって何らかの種類のオブジェクトが作成され、それらのオブジェクトにはスクリプトからアクセスできるメンバーが含まれます。 ただし、これらの型の実際の名前は、アクセス可能なメンバーが使用できるように十分に指定されている限り、指定する必要はありません。 つまり、スクリプトは、これらの型のオブジェクトを保存し、それらの型の名前を実際に知らなくてもメンバーにアクセスできます。 次のサブセクションでは、これらの型を指定します。

4.5.1 プロバイダーの説明の種類

この型は、プロバイダーの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
ドライブ インスタンスプロパティ (読み取り専用) 実装の定義 (§4.5.2) ドライブ記述オブジェクトのコレクション
名前 インスタンス プロパティ (読み取り専用) プロバイダーの名前

PowerShell では、この種類は System.Management.Automation.ProviderInfoです。

4.5.2 ドライブ記述型

この型は、ドライブの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
現在地 インスタンスプロパティ (読み取り/書き込み) ドライブの現在の作業場所 (§3.1.4)
説明 インスタンスプロパティ (読み取り/書き込み) ドライブの説明
名前 インスタンス プロパティ (読み取り専用) ドライブの名前
インスタンス プロパティ (読み取り専用) ドライブの名前

PowerShell では、この種類は System.Management.Automation.PSDriveInfoです。

4.5.3 変数の説明の種類

この型は、変数の状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
属性 インスタンスプロパティ(読み取り専用) 実装の定義 属性のコレクション
説明 インスタンス プロパティ (読み取り/書き込み) New-Variable または Set-Variable コマンドレットを使用して変数に割り当てられた説明。
モジュール インスタンスプロパティ (読み取り専用) 実装が定義されています (§4.5.12) この変数のエクスポート元のモジュール
ModuleName インスタンス プロパティ (読み取り専用) この変数が定義されたモジュール
名前 インスタンス プロパティ (読み取り専用) 変数が PowerShell 言語で作成されたとき、または New-Variable および Set-Variable コマンドレットを使用して変数に割り当てられる名前。
オプション インスタンスプロパティ (読み取り・書き込み) New-Variable および Set-Variable コマンドレットを使用して変数に割り当てられるオプション。
価値 インスタンス プロパティ (読み取り/書き込み) オブジェクト 変数が PowerShell 言語で割り当てられたときに、または New-Variable および Set-Variable コマンドレットを使用して変数に割り当てられる値。

PowerShell では、この種類は System.Management.Automation.PSVariableです。

Windows PowerShell: 属性コレクションの型は System.Management.Automation.PSVariableAttributeCollection です。

4.5.4 エイリアス記述型

この型は、エイリアスの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
CommandType インスタンス プロパティ (読み取り専用) 実装の定義 "Alias" と等しいと判断されるべきです。
定義 インスタンスプロパティ (読み取り専用) New-Alias または Set-Alias コマンドレットによってエイリアスが割り当てられたコマンドまたはエイリアス。
説明 インスタンスプロパティ (読み取り/書き込み) New-Alias または Set-Alias コマンドレットを使用してエイリアスに割り当てられた説明。
モジュール インスタンス プロパティ (読み取り専用) 実装が定義されています (§4.5.12) このエイリアスのエクスポート元のモジュール
ModuleName インスタンス プロパティ (読み取り専用) このエイリアスが定義されたモジュール
名前 インスタンスプロパティ (読み取り専用) エイリアスが New-Alias または Set-Alias コマンドレットを使用して作成されたときに割り当てられた名前。
オプション インスタンスプロパティ (読み取り/書き込み) New-Alias New-Alias または Set-Alias コマンドレットを使用してエイリアスに割り当てられるオプション。
出力タイプ インスタンスプロパティ (読み取り専用) 実装で定義されたコレクション 別名が参照するコマンドによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドのパラメーター。
パラメーターセット インスタンスプロパティ (読み取り専用) 実装で定義されたコレクション コマンドに関連付けられているパラメーター セットに関する情報。
リファレンスコマンド (ReferencedCommand) インスタンス プロパティ (読み取り専用) 実装の定義 このエイリアスによってすぐに参照されるコマンドに関する情報。
ResolvedCommand インスタンスプロパティ (読み取り専用) 実装の定義 エイリアスが最終的に解決されるコマンドに関する情報。

PowerShell では、この種類は System.Management.Automation.AliasInfoです。

4.5.5 作業場所の説明の種類

この型は、作業場所の状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
ドライブ インスタンス プロパティ (読み取り専用) 実装の定義 (§4.5.2) ドライブ記述オブジェクト
パス インスタンス プロパティ (読み取り専用) 作業場所
供給者 インスタンス プロパティ (読み取り専用) 実装が定義されています (§4.5.1) プロバイダー
プロバイダーパス インスタンス プロパティ (読み取り専用) プロバイダーの現在のパス

作業場所のスタックは、前述のように、作業場所オブジェクトのコレクションです。

PowerShell では、現在の作業場所は System.Management.Automation.PathInfo型のオブジェクトによって表されます。 作業場所のスタックは、System.Management.Automation.PathInfoStack型のオブジェクト (PathInfo オブジェクトのコレクション) によって表されます。

4.5.6 環境変数の説明の種類

この型は、環境変数の状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
名前 インスタンスプロパティ (読み取り/書き込み) 環境変数の名前
価値 インスタンス プロパティ (読み取り/書き込み) 環境変数の値

PowerShell では、この種類は System.Collections.DictionaryEntryです。 変数の名前はディクショナリ キーです。 環境変数の値はディクショナリ値です。 名前 は、キーに相当する AliasProperty です。

4.5.7 アプリケーションの説明の種類

この型は、アプリケーションの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
コマンドタイプ インスタンス プロパティ (読み取り専用) 実装の定義 "Application" と等しいかどうか比較する必要があります。
定義 インスタンス プロパティ (読み取り専用) アプリケーションの説明。
拡張 インスタンス プロパティ (読み取り/書き込み) アプリケーション ファイルの拡張子。
モジュール インスタンス プロパティ (読み取り専用) 実装が定義されています (§4.5.12) このコマンドを定義するモジュール。
ModuleName インスタンス プロパティ (読み取り専用) コマンドを定義するモジュールの名前。
名前 インスタンス プロパティ(読み取り専用) コマンドの名前。
出力タイプ インスタンスプロパティ (読み取り専用) 実装で定義されたコレクション コマンドによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドのパラメーター。
パラメータセット インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドに関連付けられているパラメーター セットに関する情報。
パス インスタンス プロパティ (読み取り専用) アプリケーション ファイルのパスを取得します。

PowerShell では、この種類は System.Management.Automation.ApplicationInfoです。

4.5.8 コマンドレットの説明の種類

この型は、コマンドレットの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
コマンドタイプ インスタンス プロパティ (読み取り専用) 実装の定義 "Cmdlet" と等しいかどうか比較する必要があります。
デフォルトパラメータセット インスタンス プロパティ (読み取り専用) 実装の定義 PowerShell が指定された引数に基づいて使用するパラメーター セットを決定できない場合に使用される既定のパラメーター セット。
定義 インスタンスプロパティ(読み取り専用) コマンドレットの説明。
ヘルプファイル インスタンス プロパティ (読み取り/書き込み) コマンドレットのヘルプ ファイルへのパス。
実装タイプ インスタンス プロパティ (読み取り/書き込み可) 実装の定義 コマンドレットを実装する型。
モジュール インスタンス プロパティ (読み取り専用) 実装が定義されています (§4.5.12) このコマンドレットを定義するモジュール。
ModuleName インスタンス プロパティ (読み取り専用) コマンドレットを定義するモジュールの名前。
名前 インスタンス プロパティ (読み取り専用) コマンドレットの名前。
名詞 インスタンス プロパティ (読み取り専用) コマンドレットの名詞形式の名前。
出力タイプ インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドレットによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドレットのパラメーター。
パラメーターセット インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドレットに関連付けられているパラメーター セットに関する情報。
動詞 インスタンスプロパティ (読み取り専用) コマンドレットの動詞名。
PSSnapIn インスタンスプロパティ (読み取り専用) 実装の定義 Windows PowerShell: コマンドレットの登録に使用される Windows PowerShell スナップインに関する情報。

PowerShell では、この種類は System.Management.Automation.CmdletInfoです。

4.5.9 外部スクリプトの説明の種類

この型は、外部スクリプトの状態をカプセル化します (PowerShell によって直接実行可能ですが、組み込まれていません)。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
コマンドタイプ インスタンスの特性 (読み取り専用) 実装の定義 "ExternalScript" と同等であるべきです。
定義 インスタンス プロパティ (読み取り専用) スクリプトの定義。
モジュール インスタンス特性(読み取り専用) 実装が定義されています (§4.5.12) このスクリプトを定義するモジュール。
ModuleName インスタンス プロパティ (読み取り専用) スクリプトを定義するモジュールの名前。
名前 インスタンスプロパティ (読み取り専用) スクリプトの名前。
OriginalEncoding インスタンスプロパティ (読み取り専用) 実装の定義 スクリプトの文字をバイトに変換するために使用される元のエンコード。
OutputType インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション スクリプトによって出力される値の型を指定します。
パラメーター インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション スクリプトのパラメーター。
パラメーターセット インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション スクリプトに関連付けられているパラメーター セットに関する情報。
パス インスタンスプロパティ (読み取り専用) スクリプト ファイルへのパス。
ScriptBlock インスタンス プロパティ (読み取り専用) スクリプトブロック 外部スクリプト。
ScriptContents インスタンス プロパティ (読み取り専用) スクリプトの元の内容。

PowerShell では、この種類は System.Management.Automation.ExternalScriptInfoです。

4.5.10 関数の説明の種類

この型は、関数の状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
CmdletBinding インスタンス プロパティ (読み取り専用) bool 関数が、コンパイルされたコマンドレットで使用されるのと同じパラメーター バインドを使用するかどうかを示します (§12.3.5を参照)。
コマンドタイプ インスタンス プロパティ (読み取り専用) 実装の定義 等しいかどうかを "Function" または "Filter" と比較して、このオブジェクトが表すオブジェクトを確認できます。
DefaultParameterSet インスタンス プロパティ (読み取り専用) 引数から決定できない場合に使用するパラメーター セットを指定します (§12.3.5を参照)。
定義 インスタンス プロパティ(読み取り専用) ScriptBlock の文字列バージョン
説明 インスタンス プロパティ (読み取り/書き込み) 関数の説明。
モジュール インスタンスプロパティ (読み取り専用) 実装が定義されています (§4.5.12) この関数のエクスポート元のモジュール
ModuleName インスタンス プロパティ (読み取り専用) この関数が定義されたモジュール
名前 インスタンス プロパティ (読み取り専用) 関数の名前
オプション インスタンス プロパティ (読み取り/書き込み) 実装の定義 関数のスコープ オプション (§3.5.4)。
出力タイプ インスタンスプロパティ (読み取り専用) 実装で定義されたコレクション 出力される値の型を順番に指定します (§12.3.6を参照)。
パラメーター インスタンスプロパティ(読み取り専用) 実装で定義されたコレクション パラメーター名を順番に指定します。 関数がコマンドレットのように動作する場合 (上記の CmdletBinding を参照)、共通パラメーター がコレクションの末尾に含まれます。
パラメータセット インスタンス プロパティ (読み取り専用) 実装で定義されたコレクション コマンドに関連付けられているパラメーター セットに関する情報。 各パラメーターについて、結果にはパラメーター名と型が表示され、パラメーターが必須かどうかを位置またはスイッチ パラメーターで示します。 関数がコマンドレットのように動作する場合 (上記の CmdletBinding を参照)、共通パラメーター がコレクションの末尾に含まれます。
ScriptBlock インスタンスプロパティ (読み取り専用) スクリプト ブロック (§4.3.6) 関数の本体

PowerShell では、この種類は System.Management.Automation.FunctionInfoです。

  • CommandType には型 System.Management.Automation.CommandTypesがあります。
  • Options には型 System.Management.Automation.ScopedItemOptionsがあります。
  • OutputType には型 System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]]があります。
  • Parameters には型 System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]]があります。
  • ParameterSets には型 System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]]があります。
  • 可視性の種類は System.Management.Automation.SessionStateEntryVisibilityです。
  • PowerShell には、Visibility というプロパティもあります。

4.5.11 フィルターの説明の種類

この型は、フィルターの状態をカプセル化します。 関数の説明の種類 (§4.5.10) と同じアクセス可能なメンバーのセットがあります。

PowerShell では、この種類は System.Management.Automation.FilterInfoです。 System.Management.Automation.FunctionInfo (§4.5.11) と同じプロパティ セットがあります。

4.5.12 モジュールの説明の種類

この型は、モジュールの状態をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
説明 インスタンス プロパティ (読み取り/書き込み) モジュールの説明 (マニフェストによって設定)
モジュールタイプ インスタンス プロパティ (読み取り専用) 実装の定義 モジュールの型 (マニフェスト、スクリプト、またはバイナリ)
名前 インスタンス プロパティ (読み取り専用) モジュールの名前
パス インスタンス プロパティ (読み取り専用) モジュールのパス

PowerShell では、この種類は System.Management.Automation.PSModuleInfoです。 ModuleType の種類は System.Management.Automation.ModuleTypeです。

4.5.13 カスタム オブジェクトの説明の種類

この型は、カスタム オブジェクトの状態をカプセル化します。 アクセス可能なメンバーはありません。

PowerShell では、この種類は System.Management.Automation.PSCustomObjectです。 コマンドレット Import-ModuleNew-Object は、この型のオブジェクトを生成できます。

4.5.14 コマンドの説明の種類

自動変数 $PsCmdlet は、実行中のコマンドレットまたは関数を表すオブジェクトです。 このオブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
パラメータセット名 インスタンス プロパティ (読み取り専用) 現在のパラメーター セットの名前 (ParameterSetName を参照)
ShouldContinue インスタンス メソッド

過負荷

/bool

ユーザーに操作の確認を要求します。
ShouldProcess インスタンス メソッド

過負荷になった

/bool

操作が実行される前に、ユーザーに確認を要求します。

PowerShell では、この型は System.Management.Automation.PSScriptCmdlet です。

4.5.15 エラーレコード記述タイプ

自動変数 $Error には、最近のエラーを表すエラー レコードのコレクションが含まれています (§3.12)。 このコレクションの型は指定されていませんが、個々のエラー レコードにアクセスするための添字がサポートされています。

PowerShell では、コレクションの種類は System.Collections.ArrayList。 コレクション内の個々のエラー レコードの型が System.Management.Automation.ErrorRecord。 この型には、次のパブリック プロパティがあります。

  • CategoryInfo - エラーのカテゴリに関する情報を取得します。
  • ErrorDetails - 置換エラー メッセージなど、より詳細なエラー情報を取得および設定します。
  • 例外 - このエラー レコードに関連付けられている例外を取得します。
  • FullyQualifiedErrorId - このエラー レコードの完全修飾エラー識別子を取得します。
  • InvocationInfo - エラーが発生したときに呼び出されたコマンドに関する情報を取得します。
  • PipelineIterationInfo - このエラー レコードが作成されたときのパイプラインの状態を取得します
  • TargetObject - エラーが発生したときに処理されていたオブジェクトを取得します。

4.5.16 列挙子の説明の種類

変数の数は、コレクションの列挙子です (§4)。 自動変数 $foreach は、任意の foreach ステートメントに対して作成された列挙子です。 自動変数 $input は、パイプラインから関数に配信されるコレクションの列挙子です。 自動変数 $switch は、任意の switch ステートメントに対して作成された列挙子です。

列挙子の型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
現在 インスタンス プロパティ (読み取り専用) オブジェクト コレクション内の現在の要素を取得します。 列挙子が現在コレクションの要素に配置されていない場合、動作は実装定義されます。
次へ進む インスタンス メソッド なし/bool 列挙子をコレクションの次の要素に進めます。 列挙子が次の要素に正常に進んだ場合に$trueを返します。列挙子がコレクションの末尾を通過した場合に$falseします。

PowerShell では、これらのメンバーはインターフェイス System.IEnumeratorで定義されます。これは、次に示す型によって実装されます。 列挙子が現在コレクションの要素に配置されていない場合は、InvalidOperationException 型の例外が発生します。 $foreachの場合、この型は System.Array+SZArrayEnumeratorです。 $inputの場合、この型は System.Collections.ArrayList+ArrayListEnumeratorSimpleです。 $switchの場合、この型は System.Array+SZArrayEnumeratorです。

4.5.17 ディレクトリの説明の種類

コマンドレット New-Item では、FileSystem ディレクトリなど、さまざまな種類の項目を作成できます。 ディレクトリ記述オブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
属性 インスタンス プロパティ (読み取り/書き込み) 実装が定義されています (§4.2.6.3) ディレクトリ オブジェクトの 1 つ以上の属性を取得または設定します。
作成時間 インスタンス プロパティ (読み取り/書き込み) 実装が定義されています (§4.5.19) ディレクトリ オブジェクトの作成時刻を取得および設定します。
拡張 インスタンス プロパティ (読み取り専用) ディレクトリ名の拡張部分を取得します。
FullName インスタンス プロパティ (読み取り専用) ディレクトリの完全なパスを取得します。
最終更新日時 インスタンス プロパティ (読み取り、書き込み) 実装が定義されています (§4.5.19) ディレクトリが最後に書き込まれた時刻を取得および設定します。
名前 インスタンス プロパティ (読み取り専用) ディレクトリの名前を取得します。

PowerShell では、この種類は System.IO.DirectoryInfoです。 Attributes プロパティの型は System.IO.FileAttributes です。

4.5.18 ファイルの説明の種類

コマンドレット New-Item では、FileSystem ファイルなど、さまざまな種類の項目を作成できます。 ファイル記述オブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
属性 インスタンス プロパティ (読み取り/書き込み) 実装が定義されています (§4.2.6.3) ファイル オブジェクトの 1 つ以上の属性を取得または設定します。
ベース名 インスタンス プロパティ (読み取り専用) 拡張子を除くファイルの名前を取得します。
CreationTime インスタンス プロパティ (読み取り/書き込み) 実装が定義されています (§4.5.19) ファイル オブジェクトの作成時刻を取得および設定します。
拡張 インスタンス プロパティ (読み取り専用) ファイル名の拡張部分を取得します。
FullName インスタンス プロパティ (読み取り専用) ファイルの完全なパスを取得します。
最終書き込み時刻 インスタンスプロパティ (読み取り/書き込み) 実装が定義されています (§4.5.19) ファイルが最後に書き込まれた時刻を取得および設定します。
長さ インスタンス プロパティ (読み取り専用) long ファイルのサイズをバイト単位で取得します。
名前 インスタンス プロパティ (読み取り専用) ファイルの名前を取得します。
バージョン情報 インスタンス プロパティ (読み取り専用) 実装の定義 Windows PowerShell: この ScriptProperty は、ファイルの System.Diagnostics.FileVersionInfo を返します。

PowerShell では、この種類は System.IO.FileInfoです。

4.5.19 日時記述型

日付/時刻記述オブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
日間 インスタンス・プロパティ (読み取り専用) int このインスタンスによって表される月の日コンポーネントを取得します。
Hour インスタンスプロパティ(読み取り専用) int このインスタンスによって表される日付の時間コンポーネントを取得します。
インスタンスプロパティ (読み取り専用) int このインスタンスで表される日付の分の部分を取得します。
インスタンス プロパティ (読み取り専用) int このインスタンスによって表される日付の月コンポーネントを取得します。
Second インスタンスプロパティ (読み取り専用) int このインスタンスによって表される日付の秒のコンポーネントを取得します。
年式 インスタンスプロパティ (読み取り専用) int このインスタンスによって表される日付の年コンポーネントを取得します。

この型のオブジェクトは、Get-Dateコマンドレットで作成できます。

PowerShell では、この種類は System.DateTimeです。

4.5.20 グループ情報記述型

グループ情報 記述オブジェクトの型は、実装が定義されています。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 種類 目的
数える インスタンス プロパティ (読み取り専用) int グループ内の要素の数を取得します。
グループ インスタンス プロパティ (読み取り専用) 実装定義コレクション グループの要素を取得します。
名前 インスタンス プロパティ (読み取り専用) グループの名前を取得します。
価値観 インスタンス プロパティ (読み取り専用) 実装定義コレクション グループの要素の値を取得します。

この型のオブジェクトは、コマンドレット Group-Objectで作成できます。

PowerShell では、この種類は Microsoft.PowerShell.Commands.GroupInfoです。

4.5.21 ジェネリック メジャー情報記述型

generic-measure-info 記述オブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
平均 インスタンスプロパティ (読み取り専用) double 測定されるプロパティの値の平均を取得します。
数える インスタンス プロパティ (読み取り専用) int 指定したプロパティを持つオブジェクトの数を取得します。
最大値 インスタンス プロパティ (読み取り専用) double 指定したプロパティの最大値を取得します。
最低限 インスタンス プロパティ (読み取り専用) double 指定したプロパティの最小値を取得します。
財産 インスタンスプロパティ(読み取り専用) 測定するプロパティを取得します。
SUM インスタンスプロパティ (読み取り専用) double 指定したプロパティの値の合計を取得します。

この型のオブジェクトは、Measure-Objectコマンドレットで作成できます。

PowerShell では、この種類は Microsoft.PowerShell.Commands.GenericMeasureInfoです。

4.5.22 テキスト メジャー情報記述型

テキスト情報 記述オブジェクトの型は、実装が定義されています。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
文字 インスタンス プロパティ (読み取り専用) int ターゲット オブジェクト内の文字数を取得します。
行数 インスタンスプロパティ (読み取り専用) int ターゲット オブジェクト内の行数を取得します。
財産 インスタンス プロパティ (読み取り専用) 測定するプロパティを取得します。
単語 インスタンス プロパティ (読み取り専用) int ターゲット オブジェクト内の単語数を取得します。

この型のオブジェクトは、コマンドレット Measure-Objectで作成できます。

PowerShell では、この種類は Microsoft.PowerShell.Commands.TextMeasureInfoです。

4.5.23 資格情報の種類

資格情報オブジェクトは、さまざまなセキュリティ操作で使用できます。 資格情報オブジェクトの型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 種類 目的
パスワード インスタンス プロパティ (読み取り専用) 実装の定義 パスワードを取得します。
UserName インスタンス プロパティ (読み取り専用) ユーザー名を取得します。

この種類のオブジェクトは、Get-Credentialコマンドレットで作成できます。

PowerShell では、この種類は System.Management.Automation.PSCredentialです。

4.5.24 メソッド指定子の型

メソッド指定子の型は実装定義です。これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
Invoke インスタンス メソッド オブジェクト/変数の数と種類 可変数の引数を受け取り、親メソッド指定子によって参照されるメソッドを間接的に呼び出し、引数を渡します。

この型のオブジェクトは、呼び出し式 (§7.1.3) によって作成できます。

PowerShell では、この種類は System.Management.Automation.PSMethod です。

4.5.25 メンバー定義の種類

この型は、メンバーの定義をカプセル化します。 これには、次のアクセス可能なメンバーがあります。

メンバー メンバーの種類 目的
定義 インスタンス プロパティ (読み取り専用) メンバーの定義を取得します。
メンバータイプ インスタンス プロパティ (読み取り専用) 実装の定義 メンバーの PowerShell 型を取得します。
名前 インスタンス プロパティ (読み取り専用) メンバーの名前を取得します。
タイプ名 インスタンス プロパティ (読み取り専用) メンバーの型名を取得します。

PowerShell では、この種類は Microsoft.PowerShell.Commands.MemberDefinitionです。

4.6 型式拡張と適応

PowerShell の実装には、コア型のファミリ (この章で説明します) が含まれており、それぞれの型に独自のベース メンバーのセット が含まれています。 これらのメンバーは、メソッドまたはプロパティにすることができ、インスタンスまたは静的メンバーにすることができます。 たとえば、型文字列 (§4.3.1) の基本メンバーはインスタンス プロパティ Length であり、インスタンス メソッドは ToLower と ToUpper です。

オブジェクトが作成されると、そのオブジェクトの型のすべてのインスタンス プロパティが格納され、そのオブジェクトに対してその型のインスタンス メソッドを呼び出すことができます。 オブジェクトは、実行時にインスタンス メンバーを追加してカスタマイズできます。 結果は、カスタム オブジェクトと呼ばれます。 インスタンスに追加されたメンバーは、そのインスタンスの有効期間中のみ存在します。同じコア型の他のインスタンスは影響を受けません。

型の基本メンバー セットは、次の種類のメンバーを追加することによって拡張できます。

  • 適応メンバー拡張型システム (ETS) によるもので、その詳細のほとんどは指定されていません。
  • 拡張メンバーAdd-Member コマンドレットによるもの。

PowerShell では、拡張メンバーを types.ps1xml ファイル経由で追加することもできます。 適応され拡張されたメンバーは、合成メンバーと総称される。

ETS は、すべての PowerShell オブジェクトに次のメンバーを追加します。psbase psadaptedpsextended、および pstypenames。 これらのメンバーの詳細については、get-Member のコマンドレットの Force パラメーターと View パラメーター 参照してください。

インスタンス メンバーは、同じ名前の拡張メンバーまたは適合メンバーを非表示にし、拡張メンバーは適応メンバーを非表示にすることができます。 このような場合、psadapted および psextended のセットを使用して非表示のメンバーにアクセスすることができます。

types.ps1xmlSupportsと呼ばれるメンバーを指定した場合、obj.psextended は、Add-Memberを介して追加されたメンバーではなく、そのメンバーのみにアクセスできます。

新しいメンバー M を持つカスタム オブジェクトを作成する方法は 3 つあります。

  1. この方法を使用して、1 つ以上の NoteProperty メンバーを追加できます。

    $x = New-Object PSObject -Property @{M = 123}
    
  2. この方法を使用して、NoteProperty または ScriptMethod メンバーを追加できます。

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}
    
  3. この方法を使用して、任意の種類のメンバーを追加できます。

    $x = New-Object PSObject
    Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
    

PSObject は、すべての PowerShell の種類の基本型です。