Select-Object

Nesneleri veya nesne özelliklerini seçer.

Sözdizimi

Select-Object
      [-InputObject <PSObject>]
      [[-Property] <Object[]>]
      [-ExcludeProperty <String[]>]
      [-ExpandProperty <String>]
      [-Unique]
      [-CaseInsensitive]
      [-Last <Int32>]
      [-First <Int32>]
      [-Skip <Int32>]
      [-Wait]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [[-Property] <Object[]>]
      [-ExcludeProperty <String[]>]
      [-ExpandProperty <String>]
      [-Unique]
      [-CaseInsensitive]
      [-Skip <Int32>]
      [-SkipLast <Int32>]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [-Unique]
      [-CaseInsensitive]
      [-Wait]
      [-Index <Int32[]>]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [-Unique]
      [-CaseInsensitive]
      [-SkipIndex <Int32[]>]
      [<CommonParameters>]

Description

Select-Object cmdlet'i bir nesnenin veya nesne kümesinin belirtilen özelliklerini seçer. Ayrıca benzersiz nesneleri, belirtilen sayıda nesneyi veya bir dizide belirtilen konumdaki nesneleri seçebilir.

Bir koleksiyondaki nesneleri seçmek için, İlk, Son, Benzersiz, atla ve Dizin parametrelerini kullanın. Nesne özelliklerini seçmek için Özelliği parametresini kullanın. Özellikleri seçtiğinizde, Select-Object yalnızca belirtilen özelliklere sahip yeni nesneler döndürür.

Windows PowerShell 3.0'dan başlayarak, Select-Object komutların kullanılmayan nesneleri oluşturmasını ve işlemesini engelleyen bir iyileştirme özelliği içerir.

bir komut işlem hattında first veya Index parametreleriyle Select-Object kullandığınızda, PowerShell seçilen nesne sayısına ulaşıldığında nesneleri oluşturan komutu durdurur. Bu iyileştirme davranışını kapatmak için Wait parametresini kullanın.

Örnekler

Örnek 1: Özelliğe göre nesneleri seçme

Bu örnek, işlem nesnelerinin Adı, kimliğive çalışma kümesi (WS) özelliklerine sahip nesneler oluşturur.

Get-Process | Select-Object -Property ProcessName, Id, WS

Örnek 2: Özelliğe göre nesneleri seçme ve sonuçları biçimlendirme

Bu örnek, bilgisayardaki işlemler tarafından kullanılan modüller hakkında bilgi alır. İşlemi bilgisayara almak için Get-Process cmdlet'ini kullanır.

Select-Object cmdlet'ini kullanarak her bir System.Diagnostics.Process örneğinin Modules özelliğinde yer alan [System.Diagnostics.ProcessModule] örnek dizisini Get-Process.

Select-Object cmdlet'in Özelliği parametresi işlem adlarını seçer. Bu, her [System.Diagnostics.ProcessModule] örneğine bir ProcessNameNoteProperty ekler ve geçerli işlemin ProcessName özelliğinin değeriyle doldurur.

Son olarak, Format-List cmdlet'i bir listedeki her işlemin adını ve modüllerini görüntülemek için kullanılır.

Get-Process Explorer |
    Select-Object -Property ProcessName -ExpandProperty Modules |
    Format-List

ProcessName       : explorer
ModuleName        : explorer.exe
FileName          : C:\WINDOWS\explorer.exe
BaseAddress       : 140697278152704
ModuleMemorySize  : 3919872
EntryPointAddress : 140697278841168
FileVersionInfo   : File:             C:\WINDOWS\explorer.exe
                    InternalName:     explorer
                    OriginalFilename: EXPLORER.EXE.MUI
                    FileVersion:      10.0.17134.1 (WinBuild.160101.0800)
                    FileDescription:  Windows Explorer
                    Product:          Microsoft Windows Operating System
                    ProductVersion:   10.0.17134.1
...

Örnek 3: En fazla belleği kullanan işlemleri seçme

Bu örnek, en çok bellek kullanan beş işlemi alır. Get-Process cmdlet'i bilgisayardaki işlemleri alır. Sort-Object cmdlet'i işlemleri bellek (çalışma kümesi) kullanımına göre sıralar ve Select-Object cmdlet'i sonuçta elde edilen nesne dizisinin yalnızca son beş üyesini seçer.

Wait parametresi, Sort-Object cmdlet'ini içeren komutlarda gerekli değildir çünkü Sort-Object tüm nesneleri işler ve sonra bir koleksiyon döndürür. Select-Object iyileştirmesi yalnızca işlenirken nesneleri tek tek döndüren komutlar için kullanılabilir.

Get-Process | Sort-Object -Property WS | Select-Object -Last 5

Handles  NPM(K)    PM(K)      WS(K) VS(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
2866     320       33432      45764   203   222.41   1292 svchost
577      17        23676      50516   265    50.58   4388 WINWORD
826      11        75448      76712   188    19.77   3780 Ps
1367     14        73152      88736   216    61.69    676 Ps
1612     44        66080      92780   380   900.59   6132 INFOPATH

Örnek 4: Diziden benzersiz karakterler seçme

Bu örnekte, bir karakter dizisinden benzersiz karakterler almak için Select-ObjectBenzersiz parametresi kullanılır.

"a","b","c","a","A","a" | Select-Object -Unique

a
b
c
A

Örnek 5: Diğer parametrelerle '-Unique' kullanma

Benzersiz parametresi, diğer Select-Object parametreleri uygulandıktan sonra değerleri filtreler. Örneğin, dizideki ilk öğe sayısını seçmek için İlk parametresini kullanırsanız, Benzersiz dizinin tamamına değil yalnızca seçili değerlere uygulanır.

"a","a","b","c" | Select-Object -First 2 -Unique

a

Bu örnekte, İlk dizideki ilk 2 öğe olarak "a","a" seçer. Benzersiz"a","a" uygulanır ve benzersiz değer olarak a döndürür.

Örnek 6: '-CaseInsensitive' parametresini kullanarak benzersiz dizeler seçin

Bu örnek, bir dizi dizeden benzersiz dizeler almak için büyük/küçük harfe duyarlı olmayan karşılaştırmalar kullanır.

"aa", "Aa", "Bb", "bb" | Select-Object -Unique -CaseInsensitive

aa
Bb

Örnek 7: Olay günlüğünde en yeni ve en eski olayları seçme

Bu örnek, Windows PowerShell olay günlüğündeki ilk (en yeni) ve son (en eski) olayları alır.

Get-WinEvent, Windows PowerShell günlüğündeki tüm olayları alır ve bunları $a değişkenine kaydeder. Ardından $aSelect-Object cmdlet'ine kanal oluşturulur. Select-Object komutu, $a değişkenindeki olaylar dizisinden olayları seçmek için Index parametresini kullanır. İlk olayın dizini 0'dır. Son olayın dizini, $a eksi 1 içindeki öğe sayısıdır.

$a = Get-WinEvent -LogName "Windows PowerShell"
$a | Select-Object -Index 0, ($a.count - 1)

Örnek 8: İlk nesne dışında tümünü seçme

Bu örnek, ilki dışında Servers.txt dosyalarında listelenen bilgisayarların her birinde yeni bir PSSession oluşturur.

Select-Object, bilgisayar adları listesindeki ilk bilgisayar dışında tümünü seçer. Sonuçta elde edilen bilgisayar listesi, New-PSSession cmdlet'in ComputerName parametresinin değeri olarak ayarlanır.

New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)

Örnek 9: Dosyaları yeniden adlandırın ve gözden geçirmek için birkaç dosya seçin

Bu örnek, salt okunur özniteliğine sahip metin dosyalarının temel adlarına bir "-ro" soneki ekler ve ardından kullanıcının efektin bir örneğini görebilmesi için ilk beş dosyayı görüntüler.

Get-ChildItem salt okunur dosyaları almak için ReadOnly dinamik parametresini kullanır. Sonuçta elde edilen dosyalar, dosyayı yeniden adlandıran Rename-Item cmdlet'ine aktarılır. Yeniden adlandırılan dosyaları Select-Object cmdlet'ine göndermek için Rename-ItemPassThru parametresini kullanır ve bu da görüntülenecek ilk 5'i seçer.

Select-Object Wait parametresi, PowerShell'in ilk beş salt okunur metin dosyasını aldıktan sonra Get-ChildItem cmdlet'ini durdurmasını engeller. Bu parametre olmadan yalnızca ilk beş salt okunur dosya yeniden adlandırılabilir.

Get-ChildItem *.txt -ReadOnly |
    Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru |
    Select-Object -First 5 -Wait

Örnek 10: -ExpandProperty parametresinin karmaşıklıklarını gösterme

Bu örnek, ExpandProperty parametresinin karmaşıklıklarını gösterir.

Oluşturulan çıkışın bir [System.Int32] örneği dizisi olduğunu unutmayın. Örnekler, Çıktı Görünümüstandart biçimlendirme kurallarına uygundur. Bu, tüm Genişletilmiş özellikleri için geçerlidir. Çıktısı alınan nesneler belirli bir standart biçime sahipse, genişletilmiş özellik görünür olmayabilir.

# Create a custom object to use for the Select-Object example.
$object = [pscustomobject]@{Name="CustomObject";Expand=@(1,2,3,4,5)}
# Use the ExpandProperty parameter to Expand the property.
$object | Select-Object -ExpandProperty Expand -Property Name

1
2
3
4
5

# The output did not contain the Name property, but it was added successfully.
# Use Get-Member to confirm the Name property was added and populated.
$object | Select-Object -ExpandProperty Expand -Property Name | Get-Member

TypeName: System.Int32

Name        MemberType   Definition
----        ----------   ----------
CompareTo   Method       int CompareTo(System.Object value), int CompareTo(int value), ...
Equals      Method       bool Equals(System.Object obj), bool Equals(int obj), bool IEq...
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
GetTypeCode Method       System.TypeCode GetTypeCode(), System.TypeCode IConvertible.Ge...
ToBoolean   Method       bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte      Method       byte IConvertible.ToByte(System.IFormatProvider provider)
ToChar      Method       char IConvertible.ToChar(System.IFormatProvider provider)
ToDateTime  Method       datetime IConvertible.ToDateTime(System.IFormatProvider provider)
ToDecimal   Method       decimal IConvertible.ToDecimal(System.IFormatProvider provider)
ToDouble    Method       double IConvertible.ToDouble(System.IFormatProvider provider)
ToInt16     Method       int16 IConvertible.ToInt16(System.IFormatProvider provider)
ToInt32     Method       int IConvertible.ToInt32(System.IFormatProvider provider)
ToInt64     Method       long IConvertible.ToInt64(System.IFormatProvider provider)
ToSByte     Method       sbyte IConvertible.ToSByte(System.IFormatProvider provider)
ToSingle    Method       float IConvertible.ToSingle(System.IFormatProvider provider)
ToString    Method       string ToString(), string ToString(string format), string ToS...
ToType      Method       System.Object IConvertible.ToType(type conversionType, System...
ToUInt16    Method       uint16 IConvertible.ToUInt16(System.IFormatProvider provider)
ToUInt32    Method       uint32 IConvertible.ToUInt32(System.IFormatProvider provider)
ToUInt64    Method       uint64 IConvertible.ToUInt64(System.IFormatProvider provider)
Name        NoteProperty string Name=CustomObject

Örnek 11: Nesneler üzerinde özel özellikler oluşturma

Aşağıdaki örnekte, herhangi bir nesneye özel özellik eklemek için Select-Object kullanımı gösterilmektedir. Var olmayan bir özellik adı belirttiğinizde, Select-Object geçirilen her nesnede NoteProperty olarak bu özelliği oluşturur.

$customObject = 1 | Select-Object -Property MyCustomProperty
$customObject.MyCustomProperty = "New Custom Property"
$customObject

MyCustomProperty
----------------
New Custom Property

Örnek 12: Her InputObject için hesaplanan özellikler oluşturma

Bu örnek, girişinize hesaplanan özellikler eklemek için Select-Object kullanmayı gösterir. Özelliği parametresine bir ScriptBlock geçirmek, Select-Object geçirilen her nesnedeki ifadeyi değerlendirmesine ve sonuçları çıkışa eklemesine neden olur. ScriptBlockiçinde, işlem hattındaki geçerli nesneye başvurmak için $_ değişkenini kullanabilirsiniz.

Varsayılan olarak, Select-Object özelliğin adı olarak ScriptBlock dizesini kullanır. Hashtablekullanarak, ScriptBlock çıkışınızı her nesneye eklenen özel bir özellik olarak etiketleyebilirsiniz. Select-Objectgeçirilen her nesneye birden çok hesaplanan özellik ekleyebilirsiniz.

# Create a calculated property called $_.StartTime.DayOfWeek
Get-Process | Select-Object -Property ProcessName,{$_.StartTime.DayOfWeek}

ProcessName  $_.StartTime.DayOfWeek
----         ----------------------
alg                       Wednesday
ati2evxx                  Wednesday
ati2evxx                   Thursday
...

# Add a custom property to calculate the size in KiloBytes of each FileInfo
# object you pass in. Use the pipeline variable to divide each file's length by
# 1 KiloBytes
$size = @{label="Size(KB)";expression={$_.length/1KB}}
# Create an additional calculated property with the number of Days since the
# file was last accessed. You can also shorten the key names to be 'l', and 'e',
# or use Name instead of Label.
$days = @{l="Days";e={((Get-Date) - $_.LastAccessTime).Days}}
# You can also shorten the name of your label key to 'l' and your expression key
# to 'e'.
Get-ChildItem $PSHOME -File | Select-Object Name, $size, $days

Name                        Size(KB)        Days
----                        --------        ----
Certificate.format.ps1xml   12.5244140625   223
Diagnostics.Format.ps1xml   4.955078125     223
DotNetTypes.format.ps1xml   134.9833984375  223

Örnek 13: Hesaplanmış özellikleri kullanmadan karma tablo anahtarlarını seçme

PowerShell 6'Select-Object, karma tablo girişin anahtarlarının özellik olarak seçilmesini destekler. Aşağıdaki örnek, giriş karma tablosu üzerindeki weight ve name anahtarlarını seçer ve çıkışı görüntüler.

@{ name = 'a' ; weight = 7 } | Select-Object -Property name, weight

name weight
---- ------
a         7

Örnek 14: ExpandProperty özgün nesneyi değiştirir

Bu örnek, ExpandProperty parametresini kullanmanın yan etkisini gösterir. ExpandPropertykullandığınızda Select-Object seçili özellikleri özgün nesneye NoteProperty üyeleri olarak ekler.

PS> $object = [PSCustomObject]@{
    name = 'USA'
    children = [PSCustomObject]@{
        name = 'Southwest'
    }
}
PS> $object

name children
---- --------
USA  @{name=Southwest}

# Use the ExpandProperty parameter to expand the children property
PS> $object | Select-Object @{n="country"; e={$_.name}} -ExpandProperty children

name      country
----      -------
Southwest USA

# The original object has been altered
PS> $object

name children
---- --------
USA  @{name=Southwest; country=USA}

Gördüğünüz gibi ülke özelliği, ExpandProperty parametresi kullanılarak alt nesnesine eklendi.

Örnek 15: Giriş nesnesini değiştirmeden genişletilmiş özelliklere sahip yeni bir nesne oluşturma

Yeni bir nesne oluşturup giriş nesnesinden özellikleri kopyalayarak ExpandProperty parametresini kullanmanın yan etkisinden kaçınabilirsiniz.

PS> $object = [PSCustomObject]@{
    name = 'USA'
    children = [PSCustomObject]@{
        name = 'Southwest'
    }
}
PS> $object

name children
---- --------
USA  @{name=Southwest}

# Create a new object with selected properties
PS> $newobject = [PSCustomObject]@{
    country = $object.name
    children = $object.children
}

PS> $newobject

country children
------- --------
USA     @{name=Southwest}

# $object remains unchanged
PS> $object

name children
---- --------
USA  @{name=Southwest}

Parametreler

-CaseInsensitive

Varsayılan olarak, Benzersiz parametresini kullandığınızda cmdlet büyük/küçük harfe duyarlı karşılaştırmalar kullanır. Bu parametreyi kullandığınızda, cmdlet büyük/küçük harfe duyarsız karşılaştırmalar kullanır.

Bu parametre PowerShell 7.4'e eklendi.

Tür:SwitchParameter
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-ExcludeProperty

Bu cmdlet'in işlemden hariç tutulduğu özellikleri belirtir. Joker karakterlere izin verilir.

PowerShell 6'da başlayarak, ExcludeProperty çalışması için Özelliği parametresinin eklenmesi gerekmez.

Tür:String[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:True

-ExpandProperty

Seçilecek özelliği belirtir ve bu özelliği genişletmek için bir girişimde bulunulması gerektiğini belirtir. Giriş nesnesi işlem hattında adlı özellik yoksa Select-Object bir hata döndürür.

  • Belirtilen özellik bir diziyse, dizinin her değeri çıkışa eklenir.
  • Belirtilen özellik bir nesneyse, her InputObject için nesne özellikleri genişletilir

Her iki durumda da çıkış nesnelerinin Tür, genişletilmiş özelliğin Türile eşleşir.

Not

ExpandPropertykullanılırken bir yan etki vardır. Select-Object, seçili özellikleri özgün nesneye NoteProperty üyeleri olarak ekler.

Özelliği parametresi belirtilirse, Select-Object seçilen her özelliği çıktısı alınan her nesneye NoteProperty olarak eklemeyi dener.

Uyarı

Bu ada sahip bir özellik zaten var olduğundan bir özelliğin işlenemediğine ilişkin bir hata alırsanız aşağıdakileri göz önünde bulundurun. ExpandPropertykullanırken Select-Object mevcut bir özelliğin yerini alamazsınız. Bu, şu anlama gelir:

  • Genişletilmiş nesne aynı ada sahip bir özelliğe sahipse, komut bir hata döndürür.
  • Selected nesnesi, Genişletilmiş nesnesinin özelliğiyle aynı ada sahipse, komut bir hata döndürür.
Tür:String
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-First

Giriş nesneleri dizisinin başından seçilebilecek nesne sayısını belirtir.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Index

Dizideki nesneleri dizin değerlerine göre seçer. Dizinleri virgülle ayrılmış bir listeye girin. Bir dizideki dizinler 0 ile başlar; burada 0 ilk değeri ve (n-1) son değeri temsil eder.

Tür:Int32[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-InputObject

İşlem hattı üzerinden cmdlet'e gönderilecek nesneleri belirtir. Bu parametre nesneleri Select-Objectyönlendirmenizi sağlar.

nesneleri InputObject parametresine geçirdiğinizde, Select-Object değer bir koleksiyon olsa bile InputObject tek bir nesne olarak değerlendirir. koleksiyonları Select-Objectgeçirirken işlem hattını kullanmanız önerilir.

Tür:PSObject
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Last

Giriş nesneleri dizisinin sonundan seçilebilecek nesne sayısını belirtir.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Property

Seçecek özellikleri belirtir. Bu özellikler, çıkış nesnelerine NoteProperty üyeleri olarak eklenir. Joker karakterlere izin verilir. Giriş nesnesi adlı özelliğe sahip değilse, yeni NoteProperty değeri $nullolarak ayarlanır.

Özelliği parametresinin değeri yeni bir hesaplanmış özellik olabilir. Hesaplanmış özellik oluşturmak için bir karma tablo kullanın.

Geçerli anahtarlar şunlardır:

  • Ad (veya Etiket) - <string>
  • İfade - <string> veya <script block>

Daha fazla bilgi için bkz. about_Calculated_Properties.

Tür:Object[]
Position:0
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:True

-Skip

Belirtilen öğe sayısını atlar (seçmez). Varsayılan olarak, Atla parametresi, nesne koleksiyonunun başından itibaren sayılır. Komut Last parametresini kullanıyorsa, koleksiyonun sonundan sayar.

0'da saymaya başlayan Index parametresinden farklı olarak Skip parametresi 1'de başlar.

PowerShell 7.4'ten başlayarak, Skip parametresini SkipLast parametresiyle kullanarak koleksiyonun hem başından hem de sonundan öğeleri atlayabilirsiniz.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-SkipIndex

Dizideki nesneleri dizin değerlerine göre atlar (seçmez). Dizinleri virgülle ayrılmış bir listeye girin. Bir dizideki dizinler 0 ile başlar; burada 0 ilk değeri ve (n-1) son değeri temsil eder.

Bu parametre Windows PowerShell 6.0'da kullanıma sunulmuştur.

Tür:Int32[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-SkipLast

Liste veya dizinin sonunda belirtilen öğe sayısını atlar (seçmez). SkipLast parametresiyle birlikte kullanmakla aynı şekilde çalışır.

0'da saymaya başlayan Index parametresinden farklı olarak, SkipLast parametresi 1'de başlar.

PowerShell 7.4'ten başlayarak, Skip parametresini SkipLast parametresiyle kullanarak koleksiyonun hem başından hem de sonundan öğeleri atlayabilirsiniz.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Unique

Giriş nesnelerinin bir alt kümesi aynı özelliklere ve değerlere sahipse, alt kümenin yalnızca tek bir üyesinin seçilmesi gerektiğini belirtir.

Benzersiz, diğer filtreleme parametreleri uygulandıktan sonra değerleri seçer.

Bu parametre büyük/küçük harfe duyarlıdır. Sonuç olarak, yalnızca karakter büyük/küçük harfe göre farklılık gösteren dizeler benzersiz olarak kabul edilir. Büyük/küçük harfe duyarlı olmayan karşılaştırmalar gerçekleştirmek için CaseInsensitive parametresini ekleyin.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Wait

Cmdlet'in iyileştirmeyi kapattığını gösterir. PowerShell komutları komut işlem hattında göründükleri sırayla çalıştırır ve tüm nesneleri oluşturmalarına olanak tanır. Varsayılan olarak, first veya Index parametreleriyle birlikte bir Select-Object komutu eklerseniz, PowerShell seçilen nesne sayısı oluşturulur oluşturulmaz nesneleri oluşturan komutu durdurur.

Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

PSObject

Nesneleri bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

PSObject

Bu cmdlet yalnızca seçili özelliklere sahip giriş nesnelerini döndürür.

Notlar

PowerShell, Select-Objectiçin aşağıdaki diğer adları içerir:

  • Tüm platformlar:
    • select

Select-Object iyileştirme özelliği yalnızca işlem hattına işlenirken nesne yazan komutlar için kullanılabilir. Nesneleri arabelleğe alan ve bunları koleksiyon olarak yazan komutlar üzerinde hiçbir etkisi yoktur. Nesneleri hemen yazmak bir cmdlet tasarımı en iyi uygulamasıdır. Daha fazla bilgi için bkz. Kesinlikle Teşvik Edilen Geliştirme Yönergeleri'nde İşlem Hattı Tek Kayıt Yazma.