4. 型
PowerShell では、各値に型があり、型は、値型 と 参照型 の 2 つの主なカテゴリの 1 つに分類されます。 一般的な値型である 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) や文字 (§4.2.2) は含まれません。 実装によっては、他の数値型 (符号付きバイト、符号なし整数、他のサイズの整数など) が提供される場合があります。
コレクション は 1 つ以上の関連する項目のグループであり、同じ型である必要はありません。 コレクション型の例としては、配列、スタック、キュー、リスト、ハッシュ テーブルなどがあります。 プログラムでは、コレクション内の要素を "列挙" (または "反復") することで、一度に 1 つの要素にアクセスできます。 これを行うための一般的な方法は、foreach ステートメント (§8.4.4) と ForEach-Object コマンドレットを使用することです。 列挙子を表すオブジェクトの型については、§4.5.16 を参照してください。
この章には、特定の型のアクセス可能なメンバーの一覧を示すテーブルがあります。 メソッドの場合、型 は returnType/argumentTypeList という形式で書かれています。 引数型のリストが長すぎてその列に収まらない場合は、代わりに "目的" 列に示されています。
他の整数型は SByte
、Int16
、UInt16
、UInt32
、UInt64
であり、すべて System 名前空間に存在します。
多くのコレクション クラスは、System.Collections または System.Collections.Generic 名前空間の一部として定義されています。 ほとんどのコレクション クラスでは、ICollection
、IComparer
、IEnumerable
、IList
、IDictionary
、IDictionaryEnumerator
の各インターフェイスと、それらに相当するジェネリックが実装されています。
4.1 特殊な型
4.1.1 void 型
この型のインスタンスを作成することはできません。 キャスト演算子 (§7.2.9) を使用して値を明示的に破棄する手段を提供します。
4.1.2 null 型
"null 型" には、自動変数 $null (§2.3.2.2、null 値とも呼ばれます) という 1 つのインスタンスがあります。 この値により、参照コンテキストに "何もないこと" を表現するための手段が提供されます。 この型の特徴は指定されていません。
4.1.3 オブジェクト型
null 型 (§4.1.2) を除く PowerShell のすべての型は、型オブジェクトから直接的または間接的に派生しているので、オブジェクトは null 以外のすべての型の最終的な基本データ型です。 型オブジェクトに制約されている (§5.3) 変数は、任意の型の値を格納できるため、実際にはまったく制約されていません。
4.2 値型
4.2.1 ブール
ブール型は bool
です。 この型の値は False と True の 2 つだけであり、それぞれ自動変数 $false
と $true
によって表されます (§2.3.2.2)。
PowerShell では、bool
は System.Boolean
にマップされます。
4.2.2 文字
文字値は char 型であり、UTF-16 でエンコードされた任意の 16 ビット Unicode コード ポイントを格納できます。
char 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | char | char 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | char | char 型に格納できる最小の値 |
IsControl | 静的メソッド | bool/char | 文字が制御文字かどうかをテストします |
IsDigit | 静的メソッド | bool/char | 文字が 10 進数の数字かどうかをテストします |
IsLetter | 静的メソッド | bool/char | 文字がアルファベットの文字かどうかをテストします |
IsLetterOrDigit | 静的メソッド | bool/char | 文字が 10 進数の数字またはアルファベットの文字かどうかをテストします |
IsLower | 静的メソッド | bool/char | 文字がアルファベットの小文字かどうかをテストします |
IsPunctuation | 静的メソッド | 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 の範囲が表されます (両端を含む)。
int 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | INT | int 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | INT | int 型に格納できる最小の値 |
long 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | long | long 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | long | long 型に格納できる最小の値 |
符号なし整数型は 1 つです。
byte
型では、8 ビットが使用され、0 から 255 の範囲が表されます (両端を含む)。
byte
型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | byte | byte 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | byte | byte 型に格納できる最小の値 |
PowerShell では、byte
、int
、long
は、それぞれ System.Byte
、System.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 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | float | float 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | float | float 型に格納できる最小の値 |
NaN | 静的プロパティ (読み取り専用) | float | 定数値 Not-a-Number (非数) |
NegativeInfinity | 静的プロパティ (読み取り専用) | float | 負の無限大の定数値 |
PositiveInfinity | 静的プロパティ (読み取り専用) | float | 正の無限大の定数値 |
double 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | double | double 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | double | double 型に格納できる最小の値 |
NaN | 静的プロパティ (読み取り専用) | double | 定数値 Not-a-Number (非数) |
NegativeInfinity | 静的プロパティ (読み取り専用) | double | 負の無限大の定数値 |
PositiveInfinity | 静的プロパティ (読み取り専用) | double | 正の無限大の定数値 |
PowerShell では、float
と double
は、それぞれ System.Single
と System.Double
にマップされます。
4.2.4.2 10 進数
decimal 型では、128 ビット表現が使用されます。 少なくとも、0 <= s <= 28 以上であるスケール s をサポートする必要があり、値の範囲は -79228162514264337593543950335 から 79228162514264337593543950335. 10 進数の実際の表現は実装で定義されます。
decimal 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
MaxValue | 静的プロパティ (読み取り専用) | decimal | decimal 型に格納できる最大の値 |
MinValue | 静的プロパティ (読み取り専用) | decimal | decimal 型に格納できる最小の値 |
注意
10 進の実数には "スケール" という特性があり、小数点の右側の桁数を表します。 たとえば、値 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 進実数を除算した場合、結果のスケールは、1 番目のスケールから 2 番目のスケールを引いたものになります。 たとえば、4.00000/2.000 は 2.00 です。 ただし、正しい結果を保持するために必要なスケールより小さくすることはできません。 たとえば、3.000/2.000、3.00/2.000、3.0/2.000、3/2 はすべて 1.5 です。
PowerShell では、decimal
は System.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 は 0 です
- ビット 31 は符号です (正の場合は 0、負の場合は 1)
4.2.5 スイッチ型
この型は、コマンドのパラメーターの型を制約するために使用されます (§8.10.5)。 対応するパラメーター名を持つ引数が存在する場合は、パラメーターで $true がテストされます。それ以外の場合は、$false
がテストされます。
PowerShell では、switch
は System.Management.Automation.SwitchParameter
にマップされます。
4.2.6 列挙型
列挙型は、その列挙型のオブジェクトに割り当てることができるすべての値を表す名前付き定数のセットを定義する型です。 場合によっては、値のセットに含まれる値を一度に 1 つのみ表すことができます。 また、場合によっては、セットの個々の値が 2 の累乗になっていて、-bor 演算子 (§7.8.5) を使用することにより、同じオブジェクトで複数の値をエンコードできます。
PowerShell 環境では、以下のセクションで説明するように、多数の列挙型が提供されています。
4.2.6.1 Action-Preference 型
この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーが含まれます。
メンバー | メンバーの種類 | 目的 |
---|---|---|
続行 | 列挙定数 | PowerShell ランタイムは処理を続行し、アクションが発生したらユーザーに通知します。 |
照会 | 列挙定数 | PowerShell ランタイムは処理を停止し、続行方法をユーザーに確認します。 |
SilentlyContinue | 列挙定数 | PowerShell ランタイムは処理を続行し、アクションが発生してもユーザーに通知しません。 |
Stop | 列挙定数 | アクションが発生すると、PowerShell ランタイムは処理を停止します。 |
PowerShell では、この型は System.Management.Automation.ActionPreference
です。
4.2.6.2 Confirm-Impact 型
この実装定義型には、次の相互に排他的な値を持つアクセス可能なメンバーが含まれます。
メンバー | メンバーの種類 | 目的 |
---|---|---|
高 | 列挙定数 | データが失われるリスクが高いアクションが実行されます (ハード ディスクの再フォーマットなど)。 |
低 | 列挙定数 | データが失われるリスクが低いアクションが実行されます。 |
Medium | 列挙定数 | データが失われるリスクが中程度のアクションが実行されます。 |
None | 列挙定数 | どのアクションも確認しません (すべての確認要求を抑制します)。 |
PowerShell では、この型は System.Management.Automation.ConfirmImpact
です。
4.2.6.3 File-Attributes 型
この実装定義型には、次のアクセス可能なメンバーが含まれ、それらを組み合わせることができます。
メンバー | メンバーの種類 | 目的 |
---|---|---|
Archive | 列挙定数 | ファイルのアーカイブの状態。 アプリケーションでは、この属性を使用して、バックアップまたは削除の対象にファイルをマークします。 |
Compressed | 列挙定数 | ファイルは圧縮ファイルです。 |
Device | 将来利用するために予約されています。 | |
ディレクトリ | 列挙定数 | ファイルはディレクトリです。 |
暗号化 | 列挙定数 | ファイルまたはディレクトリは暗号化されています。 ファイルの場合は、ファイルのすべてのデータが暗号化されています。 ディレクトリの場合は、新規作成されるファイルおよびディレクトリが既定で暗号化されます。 |
[非表示] | 列挙定数 | ファイルは隠しファイルです。したがって通常のディレクトリ リストには表示されません。 |
Normal | 列挙定数 | ファイルは通常のものであり、他の属性は設定されていません。 この属性は、単独で使用された場合にのみ有効です。 |
NotContentIndexed | 列挙定数 | ファイルは、オペレーティング システムによるコンテンツ インデックス サービスでインデックスされません。 |
オフライン | 列挙定数 | ファイルはオフラインです。 オフラインのファイルのデータは、即時には使用できません。 |
ReadOnly | 列挙定数 | ファイルが読み取り専用です。 |
ReparsePoint | 列挙定数 | ファイルには、ファイルまたはディレクトリに関連付けられたユーザー定義のデータ ブロックである、リパース ポイントが含まれています。 |
SparseFile | 列挙定数 | ファイルはスパース ファイルです。 スパース ファイルは、通常、データの大部分が 0 である大きなファイルです。 |
システム | 列挙定数 | ファイルはシステム ファイルです。 ファイルはオペレーティング システムの一部であるか、オペレーティング システムによって排他的に使用されます。 |
一時 | 列挙定数 | 一時ファイルです。 ファイル システムは、データを大容量ストレージにフラッシュするのではなく、すべてのデータをメモリに保持するよう試みて、すばやくアクセスできるようにします。 一時ファイルが不要になったら、アプリケーションが直ちに削除する必要があります。 |
PowerShell では、この型は属性 FlagsAttribute を持つ System.IO.FileAttributes です。
4.2.6.4 Regular-Expression-Option 型
この実装定義型には、次のアクセス可能なメンバーが含まれ、それらを組み合わせることができます。
メンバー | メンバーの種類 | 目的 |
---|---|---|
IgnoreCase | 列挙定数 | 照合で大文字と小文字を区別しないことを指定します。 |
None | 列挙定数 | オプションが何も設定されないことを指定します。 |
実装によって、他の値が提供される場合があります。
PowerShell では、この型は FlagsAttribute
属性を持つ System.Text.RegularExpressions.RegexOptions
です。 追加の値として、Compiled
、CultureInvariant
、ECMAScript
、ExplicitCapture
、IgnorePatternWhitespace
、Multiline
、RightToLeft
、Singleline
が定義されています。
4.3 参照型
4.3.1 文字列
文字列値は string 型で、char 型の 0 個以上の文字の変更できないシーケンスであり、それぞれに UTF-16 でエンコードされた 16 ビットの Unicode コード ポイントが含まれます。
string 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
長さ | インスタンス プロパティ | int (読み取り専用) | 文字列の文字数を取得します |
ToLower | インスタンス メソッド | string | 対応する小文字が含まれる新しい文字列を作成します |
ToUpper | インスタンス メソッド | string | 対応する大文字が含まれる新しい文字列を作成します |
PowerShell では、string
は System.String
にマップされます。
4.3.2 配列
すべての配列型は、Array
型から派生します。 この型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
長さ | インスタンス プロパティ (読み取り専用) | INT | 配列内の要素の数 |
順位 | インスタンス プロパティ (読み取り専用) | INT | 配列の次元数 |
コピー | 静的メソッド | void/目的列を参照 | ある配列から別の配列に要素の範囲をコピーします。 4 つのバージョンがあり、source はコピー元の配列、destination はコピー先の配列、count はコピーする要素の数、sourceIndex と destinationIndex はそれぞれの配列での開始位置です。 Copy(source, destination, int count) |
GetLength | インスタンス メソッド (読み取り専用) | int/なし | 特定の次元の要素の数 GetLength(int dimension) |
配列の詳細については、§9 を参照してください。
PowerShell では、Array
は System.Array
にマップされます。
4.3.3 ハッシュテーブル
Hashtable 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Count | インスタンス プロパティ | INT | Hashtable のキーと値のペアの数を取得します |
[キー] | インスタンス プロパティ | 実装定義 | すべてのキーのコレクションを取得します |
値 | インスタンス プロパティ | 実装定義 | すべての値のコレクションを取得します |
削除 | インスタンス メソッド | void/なし | 指定されたキーと値を削除します |
ハッシュテーブルの詳細については、§10 を参照してください。
PowerShell では、Hashtable
は System.Collections.Hashtable
にマップされます。 Hashtable
要素は DictionaryEntry
型のオブジェクトに格納され、Keys と Values によって返されるコレクションは ICollection
型です。
4.3.4 xml 型
xml 型は、W3C ドキュメント オブジェクト モデル (DOM) の Level 1 Core と Core DOM Level 2 を実装します。 DOM は、XML ドキュメントのメモリ内 (キャッシュ) ツリー表現であり、このドキュメントのナビゲーションと編集を可能にします。 この型では、添字演算子 (§7.1.4.4) がサポートされます。
PowerShell では、xml
は System.Xml.XmlDocument
にマップされます。
4.3.5 regex 型
regex
型では、正規表現の処理をサポートするための仕組みが提供されます。 対応する引数に正規表現が含まれている可能性があるパラメーター (§5.3) の型を制限するために使用されます。
PowerShell では、regex
は System.Text.RegularExpressions.Regex
にマップされます。
4.3.6 ref 型
通常、引数は値でコマンドに渡されます。 値型を持つ引数の場合は、値のコピーが渡されます。 参照型を持つ引数の場合は、参照のコピーが渡されます。
ref 型は、引数を参照でコマンドに渡すことにより、コマンドで引数の値を変更できるようにする仕組みを提供します。 ref 型には、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
値 | インスタンス プロパティ (読み取り/書き込み) | 参照される値の型。 | 参照される値を取得または設定します。 |
次のような関数定義と呼び出しを考えてください。
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 では、ref
は System.Management.Automation.PSReference
にマップされます。
4.3.7 scriptblock 型
scriptblock
型は、1 つの単位として使用できるスクリプト テキスト (§7.1.8) のプリコンパイル済みブロックを表します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
属性 | インスタンス プロパティ (読み取り専用) | 属性のコレクション | スクリプト ブロックの属性を取得します。 |
ファイル | インスタンス プロパティ (読み取り専用) | string | スクリプト ブロックが定義されているファイルの名前を取得します。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 ([§4.5.12][§4.5.12]) | スクリプト ブロックが定義されているモジュールに関する情報を取得します。 |
GetNewClosure | インスタンス メソッド | scriptblock /なし |
モジュールにバインドされているスクリプト ブロックを取得します。 呼び出し元のコンテキスト内にあるすべてのローカル変数がモジュールにコピーされます。 |
Invoke | インスタンス メソッド | object/object[] のコレクション | 指定された引数を使用してスクリプト ブロックを呼び出し、結果を返します。 |
InvokeReturnAsIs | インスタンス メソッド | object/object[] | 指定された引数を使用してスクリプト ブロックを呼び出し、生成されたすべてのオブジェクトを返します。 |
作成 | 静的メソッド | scriptblock /string |
指定されたスクリプトを含む新しい scriptblock オブジェクトを作成します。 |
PowerShell では、scriptblock
は System.Management.Automation.ScriptBlock
にマップされます。 Invoke
からは PsObject
のコレクションが返されます。
4.3.8 math 型
math
型を使用すると、数学的計算に役立つ定数とメソッドにアクセスできます。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
E | 静的プロパティ (読み取り専用) | double | 自然対数の底 |
PI | 静的プロパティ (読み取り専用) | double | 円の直径に対する円周の比率 |
Abs | 静的メソッド | numeric/numeric | 絶対値 (戻り値の型は、渡された引数の型と同じです) |
Acos | 静的メソッド | double/double | コサインが指定された値になる角度 |
Asin | 静的メソッド | double/double | サインが指定された値になる角度 |
Atan | 静的メソッド | double/double | タンジェントが指定された値になる角度 |
Atan2 | 静的メソッド | double/double y、double x | タンジェントが指定された 2 つの値 x と y の商になる角度 |
Ceiling | 静的メソッド | 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 |
base e または base base を使用した number の対数 |
Log10 | 静的メソッド | double/double | 指定された数値の底が 10 の対数 |
Max | 静的メソッド | numeric/numeric | 指定された 2 つの数値のうち大きい方 (戻り値の型は、渡された引数の型と同じです) |
Min | 静的メソッド | numeric/numeric、numeric | 指定された 2 つの数値のうち小さい方 (戻り値の型は、渡された引数の型と同じです) |
Pow | 静的メソッド | double/double x、double y | 指定された数値 x を y 乗した値 |
Sin | 静的メソッド | double/double | 指定された角度のサイン |
Sinh | 静的メソッド | double/double | 指定された角度の双曲線サイン |
Sqrt | 静的メソッド | double/double | 指定された数値の平方根 |
Tan | 静的メソッド | double/double | 指定された角度のタンジェント |
Tanh | 静的メソッド | double/double | 指定された角度の双曲線タンジェント |
PowerShell では、Math
は System.Math
にマップされます。
4.3.9 ordered 型
ordered
型は、変換にのみ使用される擬似型です。
4.3.10 pscustomobject 型
pscustomobject
型は、変換にのみ使用される擬似型です。
4.4 ジェネリック型
多くのプログラミング言語と環境には、"特殊化" できる型が用意されています。 これらの型の多くは、そのインスタンスが他の型のオブジェクトを格納できるため、"コンテナー型" と呼ばれています。 値のスタックを表すことができる Stack という名前の型を考えます。これは、プッシュしてポップすることができます。 通常、スタックのユーザーは、そのスタックに 1 種類のオブジェクトだけを格納する必要があります。 しかし、言語または環境で型の特殊化がサポートされていない場合は、すべてが同じタスクを実行し、型の要素だけが異なる場合であっても、Stack 型の複数の異なるバリエーションを実装する必要があります。
型の特殊化を使用すると、"ジェネリック型" を実装して、使用時に型の一部のサブセットを処理するように制限することができます。 たとえば、次のように入力します。
- 文字列を保持するように特殊化されたジェネリック スタック型は、
Stack[string]
のように記述される場合があります。 - 整数キーとそれに関連する文字列値を保持するように特殊化されたジェネリック ディクショナリ型は、
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 プロバイダー記述型
この型は、プロバイダーの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
ドライブ | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.2) | ドライブ記述オブジェクトのコレクション |
名前 | インスタンス プロパティ (読み取り専用) | string | プロバイダーの名前です。 |
PowerShell では、この型は System.Management.Automation.ProviderInfo
です。
4.5.2 ドライブ記述型
この型は、ドライブの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CurrentLocation | インスタンス プロパティ (読み取り/書き込み) | string | ドライブの現在の作業場所 (§3.1.4) |
Description | インスタンス プロパティ (読み取り/書き込み) | string | ドライブの説明 |
名前 | インスタンス プロパティ (読み取り専用) | string | ドライブの名前 |
Root | インスタンス プロパティ (読み取り専用) | string | ドライブの名前 |
PowerShell では、この型は System.Management.Automation.PSDriveInfo
です。
4.5.3 変数記述型
この型は、変数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
属性 | インスタンス プロパティ (読み取り専用) | 実装定義 | 属性のコレクション。 |
Description | インスタンス プロパティ (読み取り/書き込み) | string | New-Variable または Set-Variable コマンドレットによって変数に割り当てられた説明。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | この変数がエクスポートされたモジュール |
ModuleName | インスタンス プロパティ (読み取り専用) | string | この変数が定義されたモジュール |
名前 | インスタンス プロパティ (読み取り専用) | string | PowerShell 言語または New-Variable や Set-Variable とコマンドレットで変数が作成されたときに割り当てられた名前。 |
Options | インスタンス プロパティ (読み取り/書き込み) | string | New-Variable および Set-Variable コマンドレットを使用して変数に割り当てられたオプション。 |
値 | インスタンス プロパティ (読み取り/書き込み) | object | PowerShell 言語または New-Variable や Set-Variable とコマンドレットで変数に割り当てられた値。 |
PowerShell では、この型は System.Management.Automation.PSVariable
です。
Windows PowerShell: 属性コレクションの型は System.Management.Automation.PSVariableAttributeCollection です。
4.5.4 エイリアス記述型
この型は、エイリアスの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CommandType | インスタンス プロパティ (読み取り専用) | 実装定義 | "Alias" と等しいかどうか比較する必要があります。 |
定義 | インスタンス プロパティ (読み取り専用) | string | New-Alias または Set-Alias コマンドレットによってエイリアスが割り当てられたコマンドまたはエイリアス。 |
Description | インスタンス プロパティ (読み取り/書き込み) | string | New-Alias または Set-Alias コマンドレットによってエイリアスに割り当てられた説明。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | このエイリアスがエクスポートされたモジュール |
ModuleName | インスタンス プロパティ (読み取り専用) | string | このエイリアスが定義されたモジュール |
名前 | インスタンス プロパティ (読み取り専用) | string | New-Alias または Set-Alias コマンドレットによって作成されたときにエイリアスに割り当てられた名前。 |
Options | インスタンス プロパティ (読み取り/書き込み) | string | New-Alias または Set-Alias コマンドレットによってエイリアスに割り当てられたオプション。 |
OutputType | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | エイリアスが参照するコマンドによって出力される値の型を指定します。 |
パラメーター | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドのパラメーター。 |
ParameterSets | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドに関連付けられているパラメーター セットに関する情報。 |
ReferencedCommand | インスタンス プロパティ (読み取り専用) | 実装定義 | このエイリアスによって直接参照されるコマンドに関する情報。 |
ResolvedCommand | インスタンス プロパティ (読み取り専用) | 実装定義 | エイリアスが最終的に解決されるコマンドに関する情報。 |
PowerShell では、この型は System.Management.Automation.AliasInfo
です。
4.5.5 作業場所記述型
この型は、作業場所の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
ドライブ | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.2) | ドライブ記述オブジェクト |
パス | インスタンス プロパティ (読み取り専用) | string | 作業場所 |
プロバイダー | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.1) | プロバイダー |
ProviderPath | インスタンス プロパティ (読み取り専用) | string | プロバイダーの現在のパス |
作業場所のスタックは、前に説明したように、作業場所オブジェクトのコレクションです。
PowerShell では、現在の作業場所は System.Management.Automation.PathInfo
型のオブジェクトによって表されます。 作業場所のスタックは、System.Management.Automation.PathInfoStack
型のオブジェクトによって表され、これは PathInfo
オブジェクトのコレクションです。
4.5.6 環境変数記述型
この型は、環境変数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
名前 | インスタンス プロパティ (読み取り/書き込み) | string | 環境変数の名前 |
値 | インスタンス プロパティ (読み取り/書き込み) | string | 環境変数の値 |
PowerShell では、この型は System.Collections.DictionaryEntry
です。 変数の名前はディクショナリ キーです。 環境変数の値はディクショナリ値です。 Name は、Key に相当する AliasProperty
です。
4.5.7 アプリケーション記述型
この型は、アプリケーションの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CommandType | インスタンス プロパティ (読み取り専用) | 実装定義 | "Application" と等しいかどうか比較する必要があります。 |
定義 | インスタンス プロパティ (読み取り専用) | string | アプリケーションの記述。 |
拡張機能 | インスタンス プロパティ (読み取り/書き込み) | string | アプリケーション ファイルの拡張子。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | このコマンドが定義されているモジュール。 |
ModuleName | インスタンス プロパティ (読み取り専用) | string | コマンドが定義されているモジュールの名前。 |
名前 | インスタンス プロパティ (読み取り専用) | string | コマンドの名前。 |
OutputType | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドによって出力される値の型を指定します。 |
パラメーター | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドのパラメーター。 |
ParameterSets | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドに関連付けられているパラメーター セットに関する情報。 |
パス | インスタンス プロパティ (読み取り専用) | string | アプリケーション ファイルのパスを取得します。 |
PowerShell では、この型は System.Management.Automation.ApplicationInfo
です。
4.5.8 コマンドレット記述型
この型は、コマンドレットの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CommandType | インスタンス プロパティ (読み取り専用) | 実装定義 | "Cmdlet" と等しいかどうか比較する必要があります。 |
DefaultParameterSet | インスタンス プロパティ (読み取り専用) | 実装定義 | 指定された引数に基づいて使用するパラメーター セットを PowerShell で決定できない場合に使用される、既定のパラメーター セット。 |
定義 | インスタンス プロパティ (読み取り専用) | string | コマンドレットの記述。 |
HelpFile | インスタンス プロパティ (読み取り/書き込み) | string | コマンドレットのヘルプ ファイルへのパス。 |
ImplementingType | インスタンス プロパティ (読み取り/書き込み) | 実装定義 | コマンドレットが実装されている型。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | このコマンドレットが定義されているモジュール。 |
ModuleName | インスタンス プロパティ (読み取り専用) | string | コマンドレットが定義されているモジュールの名前。 |
名前 | インスタンス プロパティ (読み取り専用) | string | コマンドレットの名前。 |
[名詞] | インスタンス プロパティ (読み取り専用) | string | コマンドレットの名詞形式の名前。 |
OutputType | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドレットによって出力される値の型を指定します。 |
パラメーター | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドレットのパラメーター。 |
ParameterSets | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドレットに関連付けられているパラメーター セットに関する情報。 |
動詞 | インスタンス プロパティ (読み取り専用) | string | コマンドレットの動詞形式の名前。 |
PSSnapIn | インスタンス プロパティ (読み取り専用) | 実装定義 | Windows PowerShell: コマンドレットの登録に使用される Windows PowerShell スナップインに関する情報。 |
PowerShell では、この型は System.Management.Automation.CmdletInfo
です。
4.5.9 外部スクリプト記述型
この型は、外部スクリプト (PowerShell によって直接実行可能だが、組み込まれてはいないもの) の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CommandType | インスタンス プロパティ (読み取り専用) | 実装定義 | "ExternalScript" と等しいかどうか比較する必要があります。 |
定義 | インスタンス プロパティ (読み取り専用) | string | スクリプトの定義。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | このスクリプトが定義されているモジュール。 |
ModuleName | インスタンス プロパティ (読み取り専用) | string | スクリプトが定義されているモジュールの名前。 |
名前 | インスタンス プロパティ (読み取り専用) | string | スクリプトの名前。 |
OriginalEncoding | インスタンス プロパティ (読み取り専用) | 実装定義 | スクリプトの文字をバイトに変換するために使用された元のエンコード。 |
OutputType | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | スクリプトによって出力される値の型を指定します。 |
パラメーター | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | スクリプトのパラメーター。 |
ParameterSets | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | スクリプトに関連付けられているパラメーター セットに関する情報。 |
パス | インスタンス プロパティ (読み取り専用) | string | スクリプト ファイルへのパス。 |
スクリプト ブロック | インスタンス プロパティ (読み取り専用) | scriptblock | 外部スクリプト。 |
ScriptContents | インスタンス プロパティ (読み取り専用) | string | スクリプトの元の内容。 |
PowerShell では、この型は System.Management.Automation.ExternalScriptInfo
です。
4.5.10 関数記述型
この型は、関数の状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
CmdletBinding | インスタンス プロパティ (読み取り専用) | [bool] | コンパイルされたコマンドレットで使用されるのと同じパラメーター バインドを関数が使用するかどうかを示します (§12.3.5 を参照)。 |
CommandType | インスタンス プロパティ (読み取り専用) | 実装定義 | "Function" または "Filter" と等しいかどうかを比較して、このオブジェクトがそのどちらを表すかを確認できます。 |
DefaultParameterSet | インスタンス プロパティ (読み取り専用) | string | 引数から決定できない場合に、使用するパラメーター セットを指定します (§12.3.5 を参照)。 |
定義 | インスタンス プロパティ (読み取り専用) | string | ScriptBlock の文字列バージョン |
Description | インスタンス プロパティ (読み取り/書き込み) | string | 関数の説明。 |
モジュール | インスタンス プロパティ (読み取り専用) | 実装定義 (§4.5.12) | この関数がエクスポートされたモジュール |
ModuleName | インスタンス プロパティ (読み取り専用) | string | この関数が定義されたモジュール |
名前 | インスタンス プロパティ (読み取り専用) | string | 関数の名前 |
Options | インスタンス プロパティ (読み取り/書き込み) | 実装定義 | 関数のスコープオプション (§3.5.4)。 |
OutputType | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | 出力される値の型を順番に指定します (§12.3.6 を参照)。 |
パラメーター | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | パラメーター名を順番に指定します。 関数がコマンドレットのように動作する場合 (上の CmdletBinding を参照)、共通パラメーターがコレクションの最後に含まれます。 |
ParameterSets | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | コマンドに関連付けられているパラメーター セットに関する情報。 結果では、パラメーターごとに、パラメーターの名前と型、およびパラメーターが必須かどうかが、位置または switch パラメーターによって示されます。 関数がコマンドレットのように動作する場合 (上の CmdletBinding を参照)、共通パラメーターがコレクションの最後に含まれます。 |
スクリプト ブロック | インスタンス プロパティ (読み取り専用) | スクリプト ブロック (§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 モジュール記述型
この型は、モジュールの状態をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Description | インスタンス プロパティ (読み取り/書き込み) | string | モジュールの説明 (マニフェストによって設定されます) |
ModuleType | インスタンス プロパティ (読み取り専用) | 実装定義 | モジュールの型 (マニフェスト、スクリプト、またはバイナリ) |
名前 | インスタンス プロパティ (読み取り専用) | string | モジュールの名前 |
パス | インスタンス プロパティ (読み取り専用) | string | モジュールのパス |
PowerShell では、この型は System.Management.Automation.PSModuleInfo
です。 ModuleType
の型は System.Management.Automation.ModuleType
です。
4.5.13 カスタム オブジェクト記述型
この型は、カスタム オブジェクトの状態をカプセル化します。 アクセス可能なメンバーはありません。
PowerShell では、この型は System.Management.Automation.PSCustomObject
です。 この型のオブジェクトは、コマンドレット Import-Module
と New-Object
で生成できます。
4.5.14 コマンド記述型
自動変数 $PsCmdlet
は、実行されているコマンドレットまたは関数を表すオブジェクトです。 このオブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
ParameterSetName | インスタンス プロパティ (読み取り専用) | string | 現在のパラメーター セットの名前 (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 - 置換エラー メッセージなど、より詳細なエラー情報を取得および設定します。
- Exception - このエラー レコードに関連付けられている例外を取得します。
- FullyQualifiedErrorId - このエラー レコードの完全修飾エラー識別子を取得します。
- InvocationInfo - エラーが発生したときに呼び出されていたコマンドに関する情報を取得します。
- PipelineIterationInfo - このエラー レコードが作成されたときのパイプラインの状態を取得します
- TargetObject - エラーが発生したときに処理されていたオブジェクトを取得します。
4.5.16 列挙子記述型
多くの変数は、コレクションの列挙子です (§4)。 自動変数 $foreach
は、任意の foreach
ステートメントに対して作成される列挙子です。 自動変数 $input
は、パイプラインから関数に提供されるコレクションの列挙子です。 自動変数 $switch
は、任意の switch
ステートメントに対して作成される列挙子です。
列挙子の型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Current | インスタンス プロパティ (読み取り専用) | object | コレクション内の現在の要素を取得します。 列挙子がコレクションの要素に現在配置されていない場合、動作は実装定義です。 |
MoveNext | インスタンス メソッド | なし/bool | 列挙子をコレクションの次の要素に進めます。 列挙子が次の要素に正常に進んだ場合は $true、列挙子がコレクションの末尾を越えた場合は $false が返されます。 |
PowerShell では、これらのメンバーは System.IEnumerator
インターフェイスで定義されています。これは、次に示す型によって実装されます。 列挙子がコレクションの要素に現在配置されていない場合は、InvalidOperationException
型の例外が発生します。 $foreach
の場合、この型は System.Array+SZArrayEnumerator
です。 $input
の場合、この型は System.Collections.ArrayList+ArrayListEnumeratorSimple
です。 $switch
の場合、この型は System.Array+SZArrayEnumerator
です。
4.5.17 ディレクトリ記述型
FileSystem ディレクトリなどのさまざまな種類の項目を、コマンドレット New-Item で作成できます。 ディレクトリ記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
属性 | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.2.6.3) | ディレクトリ オブジェクトの 1 つ以上の属性を取得または設定します。 |
CreationTime | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.5.19) | ディレクトリ オブジェクトの作成日時を取得および設定します。 |
拡張機能 | インスタンス プロパティ (読み取り専用) | string | ディレクトリ名の拡張部分を取得します。 |
FullName | インスタンス プロパティ (読み取り専用) | string | ディレクトリの絶対パスを取得します。 |
最終書き込み時刻 | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.5.19) | ディレクトリが最後に書き込まれた日時を取得および設定します。 |
名前 | インスタンス プロパティ (読み取り専用) | string | ディレクトリの名前を取得します。 |
PowerShell では、この型は System.IO.DirectoryInfo
です。 Attributes プロパティの型は System.IO.FileAttributes
です。
4.5.18 ファイル記述型
New-Item
コマンドレットを使用すると、FileSystem ファイルなどのさまざまな種類の項目を作成できます。 ファイル記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
属性 | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.2.6.3) | ファイル オブジェクトの 1 つ以上の属性を取得または設定します。 |
BaseName | インスタンス プロパティ (読み取り専用) | string | 拡張子を除いたファイルの名前を取得します。 |
CreationTime | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.5.19) | ファイル オブジェクトの作成日時を取得および設定します。 |
拡張機能 | インスタンス プロパティ (読み取り専用) | string | ファイル名の拡張部分を取得します。 |
FullName | インスタンス プロパティ (読み取り専用) | string | ファイルの完全なパスを取得します。 |
最終書き込み時刻 | インスタンス プロパティ (読み取り/書き込み) | 実装定義 (§4.5.19) | ファイルが最後に書き込まれた日時を取得および設定します。 |
長さ | インスタンス プロパティ (読み取り専用) | long | ファイルのサイズ (バイト単位) を取得します。 |
名前 | インスタンス プロパティ (読み取り専用) | string | ファイルの名前を取得します。 |
VersionInfo | インスタンス プロパティ (読み取り専用) | 実装定義 | Windows PowerShell: この ScriptProperty からは、ファイルの System.Diagnostics.FileVersionInfo が返されます。 |
PowerShell では、この型は System.IO.FileInfo
です。
4.5.19 日時記述型
日時記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
日間 | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される月の日の部分を取得します。 |
時間 | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される日付の時間の部分を取得します。 |
分 | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される日付の分の部分を取得します。 |
Month | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される日付の月の部分を取得します。 |
Second | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される日付の秒の部分を取得します。 |
Year | インスタンス プロパティ (読み取り専用) | INT | このインスタンスで表される日付の年の部分を取得します。 |
この型のオブジェクトは、Get-Date コマンドレットで作成できます。
PowerShell では、この型は System.DateTime
です。
4.5.20 グループ情報記述型
グループ情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Count | インスタンス プロパティ (読み取り専用) | INT | グループ内の要素の数を取得します。 |
グループ | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | グループの要素を取得します。 |
名前 | インスタンス プロパティ (読み取り専用) | string | グループの名前を取得します。 |
値 | インスタンス プロパティ (読み取り専用) | 実装定義のコレクション | グループの要素の値を取得します。 |
この型のオブジェクトは、Group-Object コマンドレットで作成できます。
PowerShell では、この型は Microsoft.PowerShell.Commands.GroupInfo
です。
4.5.21 ジェネリック メジャー情報記述型
ジェネリック メジャー情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
平均 | インスタンス プロパティ (読み取り専用) | double | 測定されたプロパティの値の平均を取得します。 |
Count | インスタンス プロパティ (読み取り専用) | INT | 指定されたプロパティを持つオブジェクトの数を取得します。 |
最大値 | インスタンス プロパティ (読み取り専用) | double | 指定されたプロパティの最大値を取得します。 |
最小値 | インスタンス プロパティ (読み取り専用) | double | 指定されたプロパティの最小値を取得します。 |
プロパティ | インスタンス プロパティ (読み取り専用) | string | 測定するプロパティを取得します。 |
SUM | インスタンス プロパティ (読み取り専用) | double | 指定されたプロパティの値の合計を取得します。 |
この型のオブジェクトは、Measure-Object コマンドレットで作成できます。
PowerShell では、この型は Microsoft.PowerShell.Commands.GenericMeasureInfo
です。
4.5.22 テキスト メジャー情報記述型
テキスト情報 記述オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
文字 | インスタンス プロパティ (読み取り専用) | INT | ターゲット オブジェクト内の文字数を取得します。 |
路線 | インスタンス プロパティ (読み取り専用) | INT | ターゲット オブジェクト内の行数を取得します。 |
プロパティ | インスタンス プロパティ (読み取り専用) | string | 測定するプロパティを取得します。 |
Words | インスタンス プロパティ (読み取り専用) | INT | ターゲット オブジェクト内の単語数を取得します。 |
この型のオブジェクトは、Measure-Object
コマンドレットで作成できます。
PowerShell では、この型は Microsoft.PowerShell.Commands.TextMeasureInfo
です。
4.5.23 資格情報型
資格情報オブジェクトは、さまざまなセキュリティ操作で使用できます。 資格情報オブジェクトの型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Password | インスタンス プロパティ (読み取り専用) | 実装定義 | パスワードを取得します。 |
UserName | インスタンス プロパティ (読み取り専用) | string | ユーザー名を取得します。 |
この型のオブジェクトは、Get-Credential コマンドレットで作成できます。
PowerShell では、この型は System.Management.Automation.PSCredential
です。
4.5.24 メソッド指定子型
メソッド指定子の型は実装定義です。次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
Invoke | インスタンス メソッド | object/可変の数と型 | 可変数の引数を受け取り、親メソッド指定子によって参照されるメソッドを間接的に呼び出して、引数を渡します。 |
この型のオブジェクトは、"呼び出し式" (§7.1.3) で作成できます。
PowerShell では、この型は System.Management.Automation.PSMethod です。
4.5.25 メンバー定義型
この型は、メンバーの定義をカプセル化します。 それには、次のアクセス可能なメンバーがあります。
メンバー | メンバーの種類 | Type | 目的 |
---|---|---|---|
定義 | インスタンス プロパティ (読み取り専用) | string | メンバーの定義を取得します。 |
MemberType | インスタンス プロパティ (読み取り専用) | 実装定義 | メンバーの PowerShell 型を取得します。 |
名前 | インスタンス プロパティ (読み取り専用) | string | メンバーの名前を取得します。 |
TypeName | インスタンス プロパティ (読み取り専用) | string | メンバーの型名を取得します。 |
PowerShell では、この型は Microsoft.PowerShell.Commands.MemberDefinition
です。
4.6 型の拡張と適応
PowerShell の実装には、コア型のファミリ (この章で説明します) が含まれており、それぞれに固有の "基本メンバー" のセットが含まれます。 それらのメンバーはメソッドまたはプロパティであり、インスタンス メンバーと静的メンバーがあります。 たとえば、string 型 (§4.3.1) の基本メンバーは、インスタンス プロパティ Length とインスタンス メソッド ToLower および ToUpper です。
作成されたオブジェクトには、そのオブジェクトの型のすべてのインスタンス プロパティが含まれ、その型のインスタンス メソッドをそのオブジェクトで呼び出すことができます。 実行時にインスタンス メンバーを追加することで、オブジェクトをカスタマイズできます。 その結果は "カスタム オブジェクト" と呼ばれます。 インスタンスに追加されたメンバーは、そのインスタンスの有効期間だけ存在します。同じコア型の他のインスタンスは影響を受けません。
型の基本メンバー セットは、次の種類のメンバーを追加することで拡張できます。
- "適応メンバー"。"拡張型システム" (ETS) によるもので、その詳細のほとんどは指定されていません。
- "拡張メンバー"。Add-Member コマンドレットによるもの。
PowerShell では、types.ps1xml
ファイルを使用して拡張メンバーを追加することもできます。 適応メンバーと拡張メンバーは、総称して 合成 "メンバー" と呼ばれます。
ETS により、すべての PowerShell オブジェクトに次のメンバーが追加されます: psbase、psadapted、psextended、pstypenames。 これらのメンバーの詳細については、Get-Member コマンドレットの Force パラメーターと View パラメーターを参照してください。
インスタンス メンバーにより、同じ名前の拡張メンバーや適応メンバーが隠ぺいされたり、拡張メンバーによって適応メンバーが隠ぺいされたりする場合があります。 そのような場合は、メンバー セット psadapted と psextended を使用して、それらの隠ぺいされたメンバーにアクセスできます。
types.ps1xml
で Supports という名前のメンバーが指定されている場合、obj.psextended
を使用するとそのメンバーだけにアクセスでき、Add-Member
によって追加されたメンバーにはアクセスできません。
新しいメンバー M を持つカスタム オブジェクトを作成するには、次の 3 つの方法があります。
この方法を使用すると、1 つ以上の NoteProperty メンバーを追加できます。
$x = New-Object PsObject -Property @{M = 123}`
この方法を使用すると、NoteProperty または ScriptMethod メンバーを追加できます。
$x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
この方法を使用すると、任意の種類のメンバーを追加できます。
$x = New-Object PsObject Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
PsObject
は、PowerShell のすべての型の基本データ型です。
フィードバック
フィードバックの送信と表示