about_Arrays

Krátký popis

Popisuje pole, což jsou datové struktury navržené k ukládání kolekcí položek.

Dlouhý popis

Pole je datová struktura navržená k uložení kolekce položek. Položky můžou být stejného typu nebo různé typy.

Počínaje windows PowerShellem 3.0 má kolekce nula nebo jednoho objektu některé vlastnosti polí.

Vytvoření a inicializace pole

Pokud chcete vytvořit a inicializovat pole, přiřaďte proměnné více hodnot. Hodnoty uložené v poli jsou oddělené čárkou a oddělují se od názvu proměnné operátorem přiřazení (=).

Pokud chcete například vytvořit matici $A , která obsahuje sedm číselných hodnot (celé číslo) 22, 5, 10, 8, 12, 9 a 80, zadejte:

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

Čárku lze také použít k inicializaci pole jedné položky umístěním čárky před jedinou položku.

Pokud chcete například vytvořit pole s jednou položkou s názvem $B obsahující jedinou hodnotu 7, zadejte:

$B = ,7

Pole můžete také vytvořit a inicializovat pomocí operátoru oblasti (..). Následující příklad vytvoří pole obsahující hodnoty 5 až 8.

$C = 5..8

V důsledku toho $C obsahuje čtyři hodnoty: 5, 6, 7 a 8.

Pokud není zadán žádný datový typ, PowerShell vytvoří každé pole jako pole objektů (System.Object[]). K určení datového typu pole použijte metodu GetType() . Příklad:

$A.GetType()

Chcete-li vytvořit pole silného typu, to znamená pole, které může obsahovat pouze hodnoty určitého typu, přetypovat proměnnou jako typ pole, například string[], long[] nebo int32[]. Pokud chcete přetypovat pole, před název proměnné zadejte typ pole uzavřený v hranatých závorkách. Příklad:

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

Výsledkem je, že $ia pole může obsahovat pouze celá čísla.

V rozhraní .NET můžete vytvořit pole přetypovaná na libovolný podporovaný typ. Například objekty, které načítají tak, Get-Process aby představovaly procesy, jsou typu System.Diagnostics.Process . Chcete-li vytvořit pole objektů procesu silného typu, zadejte následující příkaz:

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

Operátor dílčího výrazu pole

Operátor dílčího výrazu pole vytvoří pole z příkazů uvnitř. Bez ohledu na to, co příkaz uvnitř operátoru vytvoří, operátor ho umístí do pole. I v případě, že existuje žádný nebo jeden objekt.

Syntaxe operátoru pole je následující:

@( ... )

Pomocí operátoru pole můžete vytvořit matici nuly nebo jednoho objektu. Příklad:

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

Operátor pole je užitečný ve skriptech, když získáváte objekty, ale nevíte, kolik očekáváte. Příklad:

$p = @(Get-Process Notepad)

Další informace o operátoru dílčího výrazu pole najdete v tématu about_Operators.

Přístup k prvkům pole a jejich používání

Čtení pole

Pole můžete odkazovat pomocí názvu proměnné. Pokud chcete zobrazit všechny prvky v poli, vyvolejte název pole. Jedná se například $a o matici čísel 0 až 9:

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

Pomocí indexu můžete odkazovat na prvky v poli. Uzavřete číslo indexu do závorek. Hodnoty indexu začínají na hodnotě 0. Pokud chcete například zobrazit první prvek v $a poli, zadejte:

$a[0]
0

Pokud chcete zobrazit třetí prvek pole $a , zadejte:

$a[2]
2

Část pole můžete načíst pomocí operátoru rozsahu indexu. Pokud například chcete načíst druhý až pátý prvek pole, zadejte:

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

Záporná čísla se počítají od konce pole. Například -1 odkazuje na poslední prvek pole. Pokud chcete zobrazit poslední tři prvky pole, zadejte ve vzestupném pořadí indexu:

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

Pokud zadáte záporné indexy v sestupném pořadí, výstup se změní.

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

Při použití tohoto zápisu však buďte opatrní. Notační cykly od koncové hranice k začátku pole.

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

Běžnou chybou je také předpokládat $a[0..-2] , že odkazuje na všechny prvky pole s výjimkou poslední chyby. Odkazuje na první, poslední a druhý prvek v poli.

Operátor plus (+) můžete použít ke kombinování oblastí se seznamem prvků v poli. Pokud chcete například zobrazit prvky na pozicích indexu 0, 2 a 4 až 6, zadejte:

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

Pokud chcete vypsat více oblastí a jednotlivých prvků, můžete také použít operátor plus. Pokud chcete například vypsat prvky nuly na dvě, čtyři až šest a prvek v osmém pozičním typu:

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

Iterace nad prvky pole

Můžete také použít konstrukty smyčky, jako foreachjsou , fora while smyčky, odkazovat na prvky v poli. Pokud chcete například použít smyčku foreach k zobrazení prvků v $a poli, zadejte:

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

Smyčka foreach prochází matici a vrací každou hodnotu v matici, dokud nedosáhne konce pole.

Smyčka for je užitečná při zvyšování čítačů při zkoumání prvků v poli. Pokud chcete například použít smyčku for k vrácení všech ostatních hodnot v matici, zadejte:

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

Smyčku while můžete použít k zobrazení prvků v poli, dokud definovaná podmínka nebude pravdivá. Pokud chcete například zobrazit prvky v $a poli, zatímco index pole je menší než 4, zadejte:

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

Vlastnosti polí

Countnebo LengthLongLength

Chcete-li zjistit, kolik položek je v poli, použijte Length vlastnost nebo jeho Count alias. Longlength je užitečný, pokud pole obsahuje více než 2 147 483 647 prvků.

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

Rank

Vrátí počet dimenzí v matici. Většina polí v PowerShellu má pouze jednu dimenzi. I když si myslíte, že vytváříte multidimenzionální pole jako v následujícím příkladu:

$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)"

V tomto příkladu vytváříte jednorozměrné pole, které obsahuje další pole. Označuje se také jako jagged array. Vlastnost Rank prokázala, že je to jednorozměrné. Pokud chcete získat přístup k položkám v polích, musí být indexy v samostatných hranatých závorkách ([]).

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

Multidimenzionální pole jsou uložená v pořadí hlavního řádku. Následující příklad ukazuje, jak vytvořit skutečně multidimenzionální pole.

[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

Pokud chcete získat přístup k položkám v multidimenzionálním poli, oddělte indexy pomocí čárky (,) v rámci jedné sady závorek ([]).

Některé operace s multidimenzionálním polem, jako je replikace a zřetězení, vyžadují, aby bylo pole zploštěno. Zploštění změní matici na 1rozměrné pole nekontrénovaného typu. Výsledné pole přebírá všechny prvky v pořadí hlavního řádku. Představte si následující příklad:

$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

Výstup ukazuje, že $c jde o 1rozměrné pole obsahující položky z $a hlavního řádku a $b hlavní pořadí řádků.

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

Metody polí

Clear

Nastaví všechny hodnoty elementu na výchozí hodnotu typu prvku pole. Metoda Clear() neobnovuje velikost pole.

V následujícím příkladu $a je pole objektů.

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

V tomto příkladu je explicitně zadán tak, $intA aby obsahoval celá čísla.

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

ForEach()

Umožňuje iterovat všechny prvky v poli a provést danou operaci pro každý prvek pole.

Metoda ForEach() má několik přetížení, které provádějí různé operace.

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(výraz scriptblock)

ForEach(výraz scriptblock, argumenty objektu[]

Tato metoda byla přidána v PowerShellu v4.

Poznámka:

Syntaxe vyžaduje použití bloku skriptu. Závorky jsou volitelné, pokud je skriptblock jediným parametrem. Nesmí existovat mezera mezi metodou a levou závorkou nebo složenou závorkou.

Následující příklad ukazuje, jak se metoda používá ForEach() . V tomto případě je záměrem vygenerovat druhou hodnotu prvků v poli.

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

Stejně jako parametr ForEach-ObjectArgumentList parametru arguments umožňuje předání pole argumentů do bloku skriptu nakonfigurovaného tak, aby je přijímal.

Další informace o chování ArgumentList naleznete v tématu about_Splatting.

ForEach(typ convertToType)

Metodu ForEach() lze použít k přetypování prvků na jiný typ; následující příklad ukazuje, jak převést seznam řetězcových kalendářních dat na [DateTime] typ.

("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)

Metodu ForEach() lze také použít k načtení nebo nastavení hodnot vlastností pro každou položku v kolekci.

# 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[] arguments)

LastMetody ForEach() lze použít k provedení metody pro každou položku v kolekci.

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

Stejně jako parametr ArgumentList parametr ForEach-Objectarguments umožňuje předání pole hodnot do bloku skriptu nakonfigurovaného tak, aby je přijímal.

Poznámka:

Počínaje windows PowerShellem 3.0 načítáním vlastností a spouštěním metod pro každou položku v kolekci lze také dosáhnout pomocí metod skalárních objektů a kolekcí. Další informace najdete tady about_Methods.

Where()

Umožňuje filtrovat nebo vybírat prvky pole. Skript musí vyhodnotit cokoli jiného než nula (0), prázdný řetězec $false nebo $null prvek, který se má zobrazit za znakem Where(). Další informace o logickém vyhodnocení najdete v tématu about_Booleans.

Pro metodu Where() existuje jedna definice.

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

Poznámka:

Syntaxe vyžaduje použití bloku skriptu. Závorky jsou volitelné, pokud je skriptblock jediným parametrem. Nesmí existovat mezera mezi metodou a levou závorkou nebo složenou závorkou.

Jedná Expression se o blok skriptu, který je nutný pro filtrování, mode volitelný argument umožňuje další možnosti výběru a numberToReturn volitelný argument umožňuje omezit počet vrácených položek z filtru.

Hodnota musí být hodnota výčtu modeWhereOperatorSelectionMode :

  • Default (0) – Vrátí všechny položky.
  • First (1) – Vrátí první položku.
  • Last (2) – Vrátí poslední položku.
  • SkipUntil (3) – Přeskočte položky, dokud podmínka není pravdivá, vrátí všechny zbývající položky (včetně první položky, pro kterou je podmínka pravdivá).
  • Until (4) – Vrátí všechny položky, dokud není podmínka pravdivá.
  • Split (5) – Vrátí pole dvou prvků.
    • První prvek obsahuje odpovídající položky.
    • Druhý prvek obsahuje zbývající položky.

Následující příklad ukazuje, jak vybrat všechna lichá čísla z pole.

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

Tento příklad ukazuje, jak vybrat řetězce, které nejsou prázdné.

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

Default

Režim Default filtruje položky pomocí Expression skriptublock.

numberToReturn Pokud je zadaný, určuje maximální počet položek, které se mají vrátit.

# 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)

Poznámka:

Režim Default i First režim vrátí první (numberToReturn) položky a lze je použít zaměnitelně.

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

Režim SkipUntil přeskočí všechny objekty v kolekci, dokud objekt nepřejde filtr blokového výrazu skriptu. Pak vrátí všechny zbývající položky kolekce bez testování. Testuje se pouze jedna předávací položka.

To znamená, že vrácená kolekce obsahuje předávací i neprocházející položky, které nebyly testovány.

Počet vrácených položek může být omezen předáním hodnoty argumentu numberToReturn .

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

Until

Režim Until invertuje SkipUntil režim. Vrátí všechny položky v kolekci, dokud položka nepřejde výraz bloku skriptu. Jakmile položka předá výraz scriptblock, Where() metoda zastaví zpracování položek.

To znamená, že obdržíte první sadu nepředávacích položek z Where() metody. Po uplynutí jedné položky se zbytek neotestujeani nevrátí.

Počet vrácených položek může být omezen předáním hodnoty argumentu 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

Poznámka:

Provozujte Until v SkipUntil rámci místního prostředí NEtestování dávky položek.

Until vrátí položky PŘED prvním PASS. SkipUntil vrátí všechny položky PO prvním průchodu, včetně první předávací položky.

Split

Režim Split rozdělí nebo seskupí položky kolekce do dvou samostatných kolekcí. Ty, které předají výraz scriptblock a ty, které ne.

Pokud je zadána numberToReturn , první kolekce obsahuje předávací položky, aby nepřekročila zadanou hodnotu.

Zbývající objekty, i ty, které předávají filtr výrazů, se vrátí ve druhé kolekci.

$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
...

Poznámka:

Obě ForEach() metody Where() jsou vnitřní členy. Další informace o vnitřních členech najdete v tématu about_Instrinsic_Members.

Získání členů pole

Chcete-li získat vlastnosti a metody pole, jako Length je vlastnost a SetValue metoda, použijte InputObject parametr rutiny Get-Member .

Když předáte pole do Get-Member, PowerShell odešle položky po jednom a Get-Member vrátí typ každé položky v poli (ignoruje duplicity).

Pokud použijete parametr InputObject , Get-Member vrátí členy pole.

Například následující příkaz získá členy $a proměnné pole.

Get-Member -InputObject $a

Členy pole můžete získat také zadáním čárky (,) před hodnotou, která je před rutinou Get-Member předsaná. Čárka vytvoří matici jako druhou položku v matici polí. PowerShell řadí pole po jednom a Get-Member vrátí členy pole. Podobně jako v následujících dvou příkladech.

,$a | Get-Member

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

Manipulace s polem

Můžete změnit prvky v matici, přidat prvek do pole a zkombinovat hodnoty ze dvou polí do třetí matice.

Chcete-li změnit hodnotu určitého prvku v poli, zadejte název pole a index prvku, který chcete změnit, a potom pomocí operátoru přiřazení (=) zadejte novou hodnotu prvku. Pokud chcete například změnit hodnotu druhé položky v matici (pozice indexu $a 1) na 10, zadejte:

$a[1] = 10

Hodnotu můžete změnit také pomocí metody SetValue pole. Následující příklad změní druhou hodnotu (pozice indexu $a 1) pole na 500:

$a.SetValue(500,1)

Pomocí operátoru += můžete přidat prvek do pole. Následující příklad ukazuje, jak přidat prvek do $a pole.

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

Poznámka:

Když použijete += operátor, PowerShell ve skutečnosti vytvoří nové pole s hodnotami původního pole a přidanou hodnotou. To může způsobit problémy s výkonem, pokud se operace několikrát opakuje nebo je velikost pole příliš velká.

Není snadné odstranit prvky z pole, ale můžete vytvořit novou matici, která obsahuje pouze vybrané prvky existujícího pole. Pokud chcete například vytvořit $t pole se všemi prvky v $a matici s výjimkou hodnoty na pozici indexu 2, zadejte:

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

Pokud chcete zkombinovat dvě matice do jedné matice, použijte operátor plus (+). Následující příklad vytvoří dvě pole, zkombinuje je a zobrazí výslednou kombinovanou matici.

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

Výsledkem je, že $z matice obsahuje 1, 3, 5 a 9.

Pokud chcete pole odstranit, přiřaďte matici hodnotu $null . Následující příkaz odstraní pole v $a proměnné.

$a = $null

Můžete také použít rutinu Remove-Item , ale přiřazení hodnoty $null je rychlejší, zejména u velkých polí.

Matice s nulovou nebo jednou

Počínaje Windows PowerShellem 3.0 má kolekce nula nebo jednoho objektu Count vlastnosti a Length vlastnosti. Můžete také indexovat do pole jednoho objektu. Tato funkce vám pomůže vyhnout se chybám skriptování, ke kterým dochází, když příkaz, který očekává kolekci, získá méně než dvě položky.

Následující příklad ukazuje, že proměnná, která neobsahuje žádné objekty, má Count a Length 0.

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

Následující příklad ukazuje, že proměnná, která obsahuje jeden objekt, má Count a Length 1. Indexování pole můžete použít také pro přístup k hodnotě objektu.

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

Když spustíte příkaz, který by mohl vrátit kolekci nebo jeden objekt, můžete použít indexování pole pro přístup k hodnotě objektu, aniž byste museli testovat Count nebo Length vlastnosti. Pokud je však výsledkem jeden objekt (singleton) a tento objekt má Count nebo Length vlastnost, hodnota těchto vlastností patří do objektu singleton a nepředstavuje počet položek v kolekci.

V následujícím příkladu příkaz vrátí jeden objekt řetězce. Řetězec Length je 4.

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

Pokud chcete $result být polem řetězců, musíte proměnnou deklarovat jako pole.

V tomto příkladu $result je pole řetězců. A Count pole je 1a Length první prvek je 4.Length

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

Podpora indexování pro systém.Tuple Objekty

PowerShell 6.1 přidal podporu indexovaného přístupu Tuple k objektům, podobně jako pole. Příklad:

PS> $tuple = [Tuple]::Create(1, 'test')
PS> $tuple[0]
1
PS> $tuple[1]
test
PS> $tuple[0..1]
1
test
PS> $tuple[-1]
test

Na rozdíl od polí a jiných objektů kolekce se objekty Tuple při předávání kanálem nebo parametry podporující pole objektů považují za jeden objekt.

Další informace naleznete v tématu System.Tuple.

Indexování typů .NET, které implementují IDictionary<TKey, TValue>

PowerShell nevolá skutečný indexer typu pro typy, které implementují obecné IDictionary<TKey, TValue> rozhraní. Místo toho PowerShell při zadání klíče otestuje existenci klíče pomocí TryGetValue(), který vrátí $null , když klíč neexistuje.

Pokud naopak zavoláte true indexer typu pomocí Item(<key>), metoda vyvolá výjimku, pokud klíč neexistuje.

Následující příklad znázorňuje rozdíl.

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

PS> [Collections.Generic.Dictionary[string, int]]::new().Item('nosuchkey')
GetValueInvocationException: Exception getting "Item": "The given key 'nosuchkey'
 was not present in the dictionary."

Výčet přístupu členů

Počínaje PowerShellem 3.0 použijete operátor přístupu člena pro přístup k členu, který v kolekci seznamů neexistuje, PowerShell automaticky vytvoří výčet položek v kolekci a pokusí se získat přístup k zadanému členu v každé položce. Další informace najdete v tématu about_Member-Access_Enumeration.

Příklady

Následující příklad vytvoří dva nové soubory a uloží výsledné objekty do proměnné $filespole . Vzhledem k tomu, že maticový objekt nemá Lastčlen WriteTime, vrátí se hodnota LastWriteTime pro každou položku v matici.

$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

Výčet přístupu členů umožňuje získat hodnoty z položek v kolekci, ale ne nastavit hodnoty u položek v kolekci. Příklad:

$files.LastWriteTime = (Get-Date).AddDays(-1)
InvalidOperation: The property 'LastWriteTime' cannot be found on this object.
Verify that the property exists and can be set.

K nastavení hodnot musíte použít metodu.

$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

Metoda set_LastWriteTime() je skrytý člen FileInfo objektu. Následující příklad ukazuje, jak najít členy, které mají skrytouset metodu.

$files | Get-Member | Where-Object Definition -like '*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;}

Upozornění

Vzhledem k tomu, že metoda se provádí pro každou položku v kolekci, je třeba při volání metod pomocí výčtu členů věnovat pozornost.

Viz také