次の方法で共有


about_Arrays

簡単な説明

配列について説明します。配列は、項目のコレクションを格納するように設計されたデータ構造です。

詳細な説明

配列は、項目のコレクションを格納するように設計されたデータ構造です。 項目には、同じ型または異なる型を指定できます。

Windows PowerShell 3.0 以降、0 個または 1 個のオブジェクトのコレクションには配列のいくつかのプロパティがあります。

配列の作成と初期化

配列を作成して初期化するには、変数に複数の値を割り当てます。 配列に格納されている値はコンマで区切られ、代入演算子 (=) によって変数名から区切られます。

たとえば、22、5、10、8、12、9、および 80 の 7 つの数値 (整数) 値を含む名前 $A の配列を作成するには、次のように入力します。

$A = 22,5,10,8,12,9,80

コンマは、1 つの項目の前にコンマを配置することで、1 つの項目配列を初期化するためにも使用できます。

たとえば、単一の値 7 を含む名前 $B の 1 つの項目配列を作成するには、次のように入力します。

$B = ,7

範囲演算子 (..) を使用して配列を作成および初期化することもできます。 次の例では、値 5 ~ 8 を含む配列を作成します。

$C = 5..8

その結果、5、6、 $C 7、8 の 4 つの値が含まれます。

データ型が指定されていない場合、PowerShell は各配列をオブジェクト配列 (System.Object[]) として作成します。 配列のデータ型を決定するには、メソッドを GetType() 使用します。 次に例を示します。

$A.GetType()

厳密に型指定された配列 (つまり、特定の型の値のみを含むことができる配列) を作成するには、文字列[]、long[]、int32[] などの配列型として変数をキャストします 配列をキャストするには、変数名の前に、角かっこで囲まれた配列型を指定します。 次に例を示します。

[int32[]]$ia = 1500, 2230, 3350, 4000

その結果、配列には $ia 整数のみを含めることができます。

.NET でサポートされている任意の型にキャストされる配列を作成できます。 たとえば、プロセスを表すために取得する Get-Process オブジェクトは System.Diagnostics.Process 型です。 厳密に型指定されたプロセス オブジェクトの配列を作成するには、次のコマンドを入力します。

[Diagnostics.Process[]]$zz = Get-Process

配列のサブ式演算子

配列サブ式演算子は、その中のステートメントから配列を作成します。 演算子内のステートメントが生成する内容に関係なく、演算子はそれを配列に配置します。 0 個または 1 個のオブジェクトがある場合でも。

配列演算子の構文は次のとおりです。

@( ... )

配列演算子を使用して、0 個または 1 つのオブジェクトの配列を作成できます。 次に例を示します。

$a = @("Hello World")
$a.Count
1
$b = @()
$b.Count
0

配列演算子は、オブジェクトを取得するときにスクリプトで役立ちますが、予想される数がわからない場合です。 次に例を示します。

$p = @(Get-Process Notepad)

配列のサブ式演算子の詳細については、「about_Operators」を参照してください

配列要素へのアクセスと使用

配列の読み取り

変数名を使用して配列を参照できます。 配列内のすべての要素を表示するには、配列名を呼び出します。 たとえば、 $a 0 から 9 までの数値の配列です。

$a
0
1
2
3
4
5
6
7
8
9

インデックスを使用して、配列内の要素を参照できます。 インデックス番号を角かっこで囲みます。 インデックス値の先頭は 0. たとえば、配列内の要素を first 表示するには、次のように $a 入力します。

$a[0]
0

配列の 3 番目の要素を表示するには、次のように $a 入力します。

$a[2]
2

インデックスの範囲演算子を使用して、配列の一部を取得できます。 たとえば、配列の 2 番目から 5 番目の要素を取得するには、次のように入力します。

$a[1..4]
1
2
3
4

配列の末尾からの負の数 count 。 たとえば、 -1 配列の要素を last 参照します。 配列の last 3 つの要素をインデックスの昇順で表示するには、次のように入力します。

$a = 0 .. 9
$a[-3..-1]
7
8
9

負のインデックスを降順に入力すると、出力が変わります。

$a = 0 .. 9
$a[-1..-3]
9
8
7

ただし、この表記を使用する場合は注意してください。 表記は、末尾の境界から配列の先頭まで循環します。

$a = 0 .. 9
$a[2..-2]
2
1
0
9
8

また、一般的な間違いの 1 つは、配列のすべての要素を参照していると仮定 $a[0..-2] することです。ただし、1 つを last 除きます。 配列内の first、 last、および 2 番目のlast 要素を参照します。

プラス演算子 (+) を使用して、範囲と配列内の要素のリストを組み合わせることができます。 たとえば、インデックス位置 0、2、4 ~ 6 に要素を表示するには、次のように入力します。

$a = 0 .. 9
$a[0,2+4..6]
0
2
4
5
6

また、複数の範囲と個々の要素を一覧表示するには、プラス演算子を使用できます。 たとえば、要素 0 から 2、4 から 6、および 8 番目の位置型の要素を一覧表示するには、次のようにします。

$a = 0..9
$a[+0..2+4..6+8]
0
1
2
4
5
6
8

配列要素に対する反復処理

ループコンストラクト (、、ループなどforeachforwhile) を使用して、配列内の要素を参照することもできます。 たとえば、ループを foreach 使用して配列内 $a の要素を表示するには、次のように入力します。

$a = 0..9
foreach ($element in $a) {
  $element
}
0
1
2
3
4
5
6
7
8
9

ループは foreach 配列を反復処理し、配列の末尾に達する配列 until 内の各値を返します。

ループは for 、配列内の要素を調べながらカウンターをインクリメントする場合に便利です。 たとえば、ループを for 使用して配列内の他のすべての値を返すには、次のように入力します。

$a = 0..9
for ($i = 0; $i -le ($a.length - 1); $i += 2) {
  $a[$i]
}
0
2
4
6
8

ループを使用して、 while 定義された条件が true ではなくなった配列 until 内の要素を表示できます。 たとえば、配列インデックスが 4 未満の場合に $a 配列内の要素を表示するには、次のように入力します。

$a = 0..9
$i=0
while($i -lt 4) {
  $a[$i]
  $i++
}
0
1
2
3

配列のプロパティ

Count、Length または LongLength

配列内の項目の数を確認するには、プロパティまたはそのCountエイリアスをLength使用します。 Longlength は、配列に 2,147,483,647 を超える要素が含まれている場合に便利です。

$a = 0..9
$a.Count
$a.Length
10
10

Rank

配列内の次元数を返します。 PowerShell のほとんどの配列には、1 つの次元しかありません。 次の例のように多次元配列を構築していると思う場合でも、

$a = @(
  @(0,1),
  @("b", "c"),
  @(Get-Process)
)

"`$a rank: $($a.Rank)"
"`$a length: $($a.Length)"
"`$a[2] length: $($a[2].Length)"
"Process `$a[2][1]: $($a[2][1].ProcessName)"

この例では、他の配列を含む 1 次元配列を作成しています。 これはジャグ配列とも 呼ばれます。 このプロパティは Rank 、これが 1 次元であることを証明しました。 ジャグ配列内の項目にアクセスするには、インデックスを別々の角かっこ ([]) に含める必要があります。

$a rank: 1
$a length: 3
$a[2] length: 348
Process $a[2][1]: AcroRd32

多次元配列は、行優先順格納されます。 次の例は、真に多次元配列を作成する方法を示しています。

[string[,]]$rank2 = [string[,]]::New(3,2)
$rank2.rank
$rank2.Length
$rank2[0,0] = 'a'
$rank2[0,1] = 'b'
$rank2[1,0] = 'c'
$rank2[1,1] = 'd'
$rank2[2,0] = 'e'
$rank2[2,1] = 'f'
$rank2[1,1]
2
6
d

多次元配列内の項目にアクセスするには、角かっこ () の 1 つのセット内でコンマ (,) を使用してインデックスを[]区切ります。

レプリケーションや連結など、多次元配列に対する一部の操作では、その配列をフラット化する必要があります。 フラット化すると、配列は制約のない型の 1 次元配列に変換されます。 結果の配列は、すべての要素を行優先の順序で受け取ります。 次の例を確認してください。

$a = "red",$true
$b = (New-Object 'int[,]' 2,2)
$b[0,0] = 10
$b[0,1] = 20
$b[1,0] = 30
$b[1,1] = 40
$c = $a + $b
$a.GetType().Name
$b.GetType().Name
$c.GetType().Name
$c

出力は、行優先順と$b行優先順の項目$aを含む 1 次元配列であることを$c示しています。

Object[]
Int32[,]
Object[]
red
True
10
20
30
40

配列のメソッド

Clear

すべての要素値を配列の default 要素型の値 に設定します。 このメソッドは Clear() 、配列のサイズをリセットしません。

次の例 $a では、オブジェクトの配列です。

$a = 1, 2, 3
$a.Clear()
$a | % { $null -eq $_ }
True
True
True

この例では、 $intA 整数を含めるために明示的に型指定されています。

[int[]] $intA = 1, 2, 3
$intA.Clear()
$intA
0
0
0

ForEach()

配列内のすべての要素を反復処理し、配列の各要素に対して特定の操作を実行できます。

この ForEach() メソッドには、さまざまな操作を実行するいくつかのオーバーロードがあります。

ForEach(scriptblock expression)
ForEach(scriptblock expression, object[] arguments)
ForEach(type convertToType)
ForEach(string propertyName)
ForEach(string propertyName, object[] newValue)
ForEach(string methodName)
ForEach(string methodName, object[] arguments)

ForEach(scriptblock 式)

ForEach(scriptblock 式,object[] 引数)

このメソッドは PowerShell v4 で追加されました。

Note

この構文では、スクリプト ブロックを使用する必要があります。 scriptblock が唯一のパラメーターである場合、かっこは省略可能です。 また、メソッドと開始かっこまたは中かっこの間にスペースを入れてはなりません。

次の例は、このメソッドの使用方法を ForEach() 示しています。 この場合、意図は配列内の要素の二乗値を生成することです。

$a = @(0 .. 3)
$a.ForEach({ $_ * $_})
0
1
4
9

ArgumentList パラメーターForEach-Objectと同様に、パラメーターを使用すると、arguments引数を受け入れるように構成されたスクリプト ブロックに引数の配列を渡すことができます。

ArgumentList の動作の詳細については、about_Splattingを参照してください

ForEach(convertToType 型)

この ForEach() メソッドを使用して、要素を別の型にキャストできます。次の例は、文字列の日付の一覧を型に変換する方法を [DateTime] 示しています。

("1/1/2017", "2/1/2017", "3/1/2017").ForEach([datetime])

Sunday, January 1, 2017 12:00:00 AM
Wednesday, February 1, 2017 12:00:00 AM
Wednesday, March 1, 2017 12:00:00 AM

ForEach(string propertyName)

ForEach(string propertyName, object[] newValue)

このメソッドを ForEach() 使用して、コレクション内のすべての項目のプロパティ値を取得または設定することもできます。

# Set all LastAccessTime properties of files to the current date.
(dir 'C:\Temp').ForEach('LastAccessTime', (Get-Date))
# View the newly set LastAccessTime of all items, and find Unique entries.
(dir 'C:\Temp').ForEach('LastAccessTime') | Get-Unique
Wednesday, June 20, 2018 9:21:57 AM

ForEach(string methodName)

ForEach(string methodName, object[] 引数)

最後に、 ForEach() メソッドを使用して、コレクション内のすべての項目に対してメソッドを実行できます。

("one", "two", "three").ForEach("ToUpper")
ONE
TWO
THREE

ArgumentList パラメーターForEach-Objectと同様に、パラメーターargumentsを使用すると、値を受け入れるように構成されたスクリプト ブロックに値の配列を渡すことができます。

Note

Windows PowerShell 3.0 以降では、コレクション内の各項目のプロパティの取得とメソッドの実行は、"スカラー オブジェクトとコレクションのメソッド" を使用して実行することもできます。 詳細については、about_Methodsを参照してください。

Where()

配列の要素をフィルター処理または選択できます。 スクリプトは、ゼロ (0)、空の文字列、 $false または $null 要素の後 Where()に表示される値とは異なる値に評価される必要があります。 ブール評価の詳細については、「about_Booleans」を参照してください

このメソッドには 1 つの定義 Where() があります。

Where(scriptblock expression[, WhereOperatorSelectionMode mode
                            [, int numberToReturn]])

Note

この構文では、スクリプト ブロックを使用する必要があります。 scriptblock が唯一のパラメーターである場合、かっこは省略可能です。 また、メソッドと開始かっこまたは中かっこの間にスペースを入れてはなりません。

Expression 、フィルター処理に必要なスクリプト ブロックです。省略可能な引数では追加の mode 選択機能が許可され numberToReturn 、省略可能な引数ではフィルターから返される項目の数を制限できます。

mode値は WhereOperatorSelectionMode 列挙値である必要があります。

  • Default (0) - すべてのアイテムを返す
  • First (1) - アイテムを first 返します
  • Last (2) - アイテムを last 返します
  • SkipUntil (3) - Skip items until condition is true, return all the remaining items (including the item which the first condition is true)
  • Until (4) - すべてのアイテムを until 返す条件が true である
  • Split (5) - 2 つの要素の配列を返します
    • 要素には first 、一致する項目が含まれています
    • 2 番目の要素には、残りの項目が含まれています

次の例は、配列からすべての奇数を選択する方法を示しています。

(0..9).Where{ $_ % 2 }
1
3
5
7
9

次の例では、空でない文字列をすべて選択する方法を示します。

('hi', '', 'there').Where{ $_ }
hi
there

Default

このモードでは Default 、scriptblock を使用して項目がフィルター処理されます Expression

a が numberToReturn 指定されている場合は、返される項目の最大数を指定します。

# Get the zip files in the current users profile, sorted by LastAccessTime
$Zips = dir $env:userprofile -Recurse '*.zip' | Sort-Object LastAccessTime
# Get the least accessed file over 100MB
$Zips.Where({$_.Length -gt 100MB}, 'Default', 1)

Note

モードとFirstモードの両方が Default (numberToReturn) 項目をfirst返し、同じ意味で使用できます。

Last

$h = (Get-Date).AddHours(-1)
$logs = dir 'C:\' -Recurse '*.log' | Sort-Object CreationTime
# Find the last 5 log files created in the past hour
$logs.Where({$_.CreationTime -gt $h}, 'Last', 5)

SkipUntil

このモードでは SkipUntil 、オブジェクトがスクリプト ブロック式フィルターを渡すコレクション until 内のすべてのオブジェクトがスキップされます。 次に、残りのコレクション項目をすべてテストせずに返します。 テストされる合格項目は 1 つだけです。

つまり、返されるコレクションには、テストされていない渡し項目と非合格項目の両方含まれます。

返される項目の数は、引数に値 numberToReturn を渡すことによって制限できます。

$computers = "Server01", "Server02", "Server03", "localhost", "Server04"
# Find the first available online server.
$computers.Where({ Test-Connection $_ }, 'SkipUntil', 1)
localhost

Until

モードは Until モードを SkipUntil 反転させます。 スクリプト ブロック式を渡す項目は、コレクションuntil内のすべての項目を返します。 項目 が scriptblock 式を 渡すと、メソッドは項目の処理を Where() 停止します。

つまり、メソッドから一連の非受け渡し項目をWhere()受け取りますfirst。 1 つの項目に合格した後 、残りの項目は テストされず 、返されません。

返される項目の数は、引数に値 numberToReturn を渡すことによって制限できます。

# Retrieve the first set of numbers less than or equal to 10.
(1..50).Where({$_ -gt 10}, 'Until')
# This would perform the same operation.
(1..50).Where({$_ -le 10})
1
2
3
4
5
6
7
8
9
10

Note

両方 Until とも、 SkipUntil 項目のバッチをテストしないという前提で動作します。

Untilは、PASS の前の項目をfirst返します。 SkipUntilは、渡された項目を含め、渡されたfirstのすべての項目をfirst返します。

Split

モードは Split 、コレクション項目を 2 つの個別のコレクションに分割またはグループ化します。 scriptblock 式を渡すもの、渡さないもの。

a numberToReturn が指定されている場合、firstコレクションには渡される項目が格納され、指定された値を超えないようにします。

残りのオブジェクト (式フィルターを渡オブジェクトも含む) は、2 番目のコレクションに返されます。

$running, $stopped = (Get-Service).Where({$_.Status -eq 'Running'}, 'Split')
$running
Status   Name               DisplayName
------   ----               -----------
Running  Appinfo            Application Information
Running  AudioEndpointBu... Windows Audio Endpoint Builder
Running  Audiosrv           Windows Audio
...
$stopped
Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
Stopped  AppIDSvc           Application Identity
...

Note

両方 ForEach()Where() メソッドは組み込みメンバーです。 組み込みメンバーに関する詳細については、about_Intrinsic_Members に関するページを参照してください。

配列のメンバーを取得する

プロパティや SetValue メソッドなど、配列のプロパティとメソッドをLength取得するには、コマンドレットの InputObject パラメーターをGet-Member使用します。

配列 Get-Memberをパイプ処理すると、PowerShell は一度に 1 つずつ項目を送信し、 Get-Member 配列内の各項目の型を返します (重複は無視されます)。

InputObject パラメーターを使用すると、Get-Member配列のメンバーが返されます。

たとえば、次のコマンドは配列変数のメンバーを $a 取得します。

Get-Member -InputObject $a

コマンドレットにパイプされる値の前にコンマ (,) を入力して、配列のメンバーを Get-Member 取得することもできます。 コンマを指定すると、配列は配列の配列の 2 番目の項目になります。 PowerShell は配列を一度に 1 つずつパイプし、 Get-Member 配列のメンバーを返します。 次の 2 つの例と同様です。

,$a | Get-Member

,(1,2,3) | Get-Member

配列の操作

配列内の要素を変更したり、配列に要素を追加したり、2 つの配列の値を 3 番目の配列に結合したりできます。

配列内の特定の要素の値を変更するには、変更する要素の配列名とインデックスを指定し、代入演算子 (=) を使用して要素の新しい値を指定します。 たとえば、配列内 $a の 2 番目の項目の値 (インデックス位置 1) を 10 に変更するには、次のように入力します。

$a[1] = 10

配列の SetValue メソッドを使用して値を変更することもできます。 次の例では、配列の 2 番目の値 (インデックス位置 1) を $a 500 に変更します。

$a.SetValue(500,1)

この演算子を += 使用して、配列に要素を追加できます。 次の例は、配列に要素を追加する方法を $a 示しています。

$a = @(0..4)
$a += 5

Note

演算子を += 使用すると、PowerShell は実際には元の配列の値と追加値を含む新しい配列を作成します。 これにより、操作が複数回繰り返されるか、配列のサイズが大きすぎる場合に、パフォーマンスの問題が発生する可能性があります。

配列から要素を削除するのは簡単ではありませんが、既存の配列の選択した要素のみを含む新しい配列を作成できます。 たとえば、インデックス位置 2 の $t 値を除き、配列内のすべての要素を $a 含む配列を作成するには、次のように入力します。

$t = $a[0,1 + 3..($a.length - 1)]

2 つの配列を 1 つの配列に結合するには、プラス演算子 (+) を使用します。 次の例では、2 つの配列を作成し、それらを結合し、結果として結合された配列を表示します。

$x = 1,3
$y = 5,9
$z = $x + $y

その結果、 $z 配列には 1、3、5、9 が含まれます。

配列を削除するには、配列に値 $null を割り当てます。 次のコマンドは、変数内の配列を $a 削除します。

$a = $null

コマンドレットを Remove-Item 使用することもできますが、特に大きな配列の場合は、値を $null 割り当てる方が高速です。

0 または 1 の配列

Windows PowerShell 3.0 以降では、0 個または 1 個のオブジェクトのコレクションにプロパティとLengthプロパティがありますCount。 また、1 つのオブジェクトの配列にインデックスを作成することもできます。 この機能は、コレクションを想定するコマンドが 2 つ未満の項目を取得したときに発生するスクリプト エラーを回避するのに役立ちます。

Note

Windows PowerShell では、ハッシュテーブル[pscustomobject]キャストして作成されたオブジェクトに、プロパティがCount含まれていないLength。 これらのメンバーにアクセスしようとすると、 $null.

次の例は、オブジェクトを含まない変数の a CountLength 0 を示しています。

PS> $a = $null
PS> $a.Count
0
PS> $a.Length
0

次の例は、1 つのオブジェクトを含む変数の a CountLength 1 を示しています。 配列インデックスを使用して、オブジェクトの値にアクセスすることもできます。

PS> $a = 4
PS> $a.Count
1
PS> $a.Length
1
PS> $a[0]
4
PS> $a[-1]
4

コレクションまたは 1 つのオブジェクトを返す可能性のあるコマンドを実行する場合は、配列インデックスを使用して、またはLengthプロパティをテストしなくても、オブジェクトの値にCountアクセスできます。 ただし、結果が 1 つのオブジェクト (シングルトン) で、そのオブジェクトに a Count または Length プロパティがある場合、それらのプロパティの値はシングルトン オブジェクトに属し、コレクション内の項目の数を表しません。

次の例では、コマンドは 1 つの文字列オブジェクトを返します。 その文字列4Length .

PS> $result = 'one','two','three','four' | Where-Object {$_ -like 'f*'}
PS> $result.GetType().FullName
System.String
PS> $result
four
PS> $result.Count
1
PS❯ $result.Length
4

文字列の配列にする場合 $result は、変数を配列として宣言する必要があります。

この例では、 $result 文字列の配列です。 Count配列のと Length 、要素Lengthのfirst値は 14.

PS> [string[]]$result = 'one','two','three','four' |
    Where-Object {$_ -like 'f*'}
PS> $result.GetType().FullName
System.String[]
PS> $result
four
PS> $result.Count
1
PS> $result.Length
1
PS> $result[0].Length
4

実装する .NET 型のインデックス作成 IDictionary<TKey, TValue>

PowerShell は、ジェネリック IDictionary<TKey, TValue> インターフェイスを実装する型に対して型の真のインデクサーを呼び出しません。 代わりに、キーを指定すると、PowerShell はキーの TryGetValue()存在をテストします。キーが存在しない場合に返 $null されます。

これに対し、型の true インデクサーを使用して Item(<key>)呼び出すと、キーが存在しない場合、メソッドは例外をスローします。

この違いを次の例に示します。

PS> [Collections.Generic.Dictionary[string, int]]::new()['nosuchkey']
# No output ($null)

PS> [Collections.Generic.Dictionary[string, int]]::new().Item('nosuchkey')
Exception getting "Item": "The given key 'nosuchkey' was not present in the dictionary."
At line:1 char:1
+ [Collections.Generic.Dictionary[string, int]]::new().Item('nosuchkey' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], GetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenGetting

メンバーアクセス列挙

PowerShell 3.0 以降では、メンバー アクセス演算子を使用してリスト コレクションに存在しないメンバーにアクセスすると、PowerShell によってコレクション内の項目が自動的に列挙され、各アイテムの指定されたメンバーへのアクセスが試行されます。 詳細については、「about_Member-Access_Enumeration」を参照 してください

次の例では、2 つの新しいファイルを作成し、結果のオブジェクトを配列変数 $filesに格納します。 配列オブジェクトには LastWriteTime メンバーがないため、配列内の各項目に対して LastWriteTime の値が返されます。

$files = (New-Item -Type File -Force '/temp/t1.txt'),
         (New-Item -Force -Type File '/temp/t2.txt')
$files.LastWriteTime
Friday, June 25, 2021 1:21:17 PM
Friday, June 25, 2021 1:21:17 PM

メンバー アクセス列挙を使用すると 、コレクション内の項目から値を取得 できますが、コレクション内の項目に値を 設定 することはできません。 次に例を示します。

$files.LastWriteTime = (Get-Date).AddDays(-1)
The property 'LastWriteTime' cannot be found on this object. Verify that the
property exists and can be set.
At line:1 char:1
+ $files.LastWriteTime = (Get-Date).AddDays(-1)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

値を設定するには、メソッドを使用する必要があります。

$files.set_LastWriteTime((Get-Date).AddDays(-1))
$files.LastWriteTime
Thursday, June 24, 2021 1:23:30 PM
Thursday, June 24, 2021 1:23:30 PM

このset_LastWriteTime()メソッドは、FileInfo オブジェクトの非表示のメンバーです。 次の例は、非表示setのメソッドを検索する方法を示しています。

$files | Get-Member -Force -Name set_*
   TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   datetime CreationTime {get;set;}
CreationTimeUtc   Property   datetime CreationTimeUtc {get;set;}
IsReadOnly        Property   bool IsReadOnly {get;set;}
LastAccessTime    Property   datetime LastAccessTime {get;set;}
LastAccessTimeUtc Property   datetime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   datetime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   datetime LastWriteTimeUtc {get;set;}

注意事項

メソッドはコレクション内の各項目に対して実行されるため、メンバー列挙を使用してメソッドを呼び出すときは注意が必要です。

関連項目