Tee-Object
Komut çıkışını bir dosyaya veya değişkene kaydeder ve işlem hattına gönderir.
Sözdizimi
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[[-Encoding] <Encoding>]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[[-Encoding] <Encoding>]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Description
Tee-Object
Cmdlet çıkışı yeniden yönlendirir, yani bir komutun çıkışını iki yönde (T harfi gibi) gönderir. Çıkışı bir dosyada veya değişkende depolar ve işlem hattına gönderir. İşlem hattındaki son komut ise Tee-Object
komut çıkışı isteminde görüntülenir.
Örnekler
Örnek 1: Çıktı işlemleri bir dosyaya ve konsola işlenir
Bu örnek, bilgisayarda çalışan işlemlerin listesini alır ve sonucu bir dosyaya gönderir. İkinci bir yol belirtilmediğinden, işlemler konsolunda da görüntülenir.
Get-Process | Tee-Object -FilePath "C:\Test1\testfile2.txt"
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
83 4 2300 4520 39 0.30 4032 00THotkey
272 6 1400 3944 34 0.06 3088 alg
81 3 804 3284 21 2.45 148 ApntEx
81 4 2008 5808 38 0.75 3684 Apoint
...
Örnek 2: Bir değişkene ve 'Select-Object' için çıkış işlemleri
Bu örnek, bilgisayarda çalışan işlemlerin listesini alır, bunları değişkenine $proc
kaydeder ve öğesine iletir Select-Object
.
Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
cmdlet'i Select-Object
ProcessName ve Handles özelliklerini seçer. değişkeninin $proc
tarafından Get-Process
döndürülen varsayılan bilgileri içerdiğini unutmayın.
Örnek 3: Sistem dosyalarını iki günlük dosyasına çıkış yapma
Bu örnek, sistem dosyalarının listesini iki günlük dosyasına, bir kümülatif dosyaya ve geçerli bir dosyaya kaydeder.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append |
Out-File c:\test\NewSystemFiles.txt
komut, D: sürücüsündeki Get-ChildItem
sistem dosyaları için özyinelemeli bir arama yapmak için cmdlet'ini kullanır. İşlem hattı işleci (|
), listeyi Tee-Object
AllSystemFiles.txt dosyasına ekleyen ve listeyi cmdlet'ine geçirerek listeyi cmdlet'ine Out-File
NewSystemFiles.txt file
kaydeden öğesine gönderir.
Örnek 4: Çıktıyı konsola yazdırma ve işlem hattında kullanma
Bu örnek, bir klasördeki dosyaları alır, konsola yazdırır ve sonra tanımlı bir ön madde meta veri bloğuna sahip olanlar için dosyaları filtreler. Son olarak, ön madde içeren makalelerin adlarını listeler.
$consoleDevice = if ($IsWindows) {
'\\.\CON'
} else {
'/dev/tty'
}
$frontMatterPattern = '(?s)^---(?<FrontMatter>.+)---'
$articles = Get-ChildItem -Path .\reference\7.4\PSReadLine\About\ |
Tee-Object -FilePath $consoleDevice |
Where-Object {
(Get-Content $_ -Raw) -match $frontMatterPattern
}
$articles.Name
Directory: C:\code\docs\PowerShell-Docs\reference\7.4\PSReadLine\About
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 12/13/2022 11:37 AM 384 .markdownlint.yaml
-a--- 4/25/2023 11:28 AM 40194 about_PSReadLine_Functions.md
-a--- 4/25/2023 10:58 AM 10064 about_PSReadLine.md
about_PSReadLine_Functions.md
about_PSReadLine.md
Örnek, değişkeni geçerli terminalin konsol cihazının değerine ayarlar $consoleDevice
. Windows'da, çıkışınızı dosya yolu'na yönlendirerek geçerli konsol cihazına \\.\CON
yazabilirsiniz. Windows olmayan sistemlerde dosya yolu kullanırsınız /dev/tty
.
Ardından değişkeni, bir dize üç kısa çizgiyle (---
) başladığında ve başka bir üç tireden önce herhangi bir içeriğe sahip olduğunda eşleşen normal bir ifadeye ayarlar$frontMatterPattern
. Bu desen bir makalenin içeriğiyle eşleştiğinde, makalede tanımlı bir ön madde meta veri bloğu bulunur.
Ardından, örnekte klasördeki About
her dosyayı almak için kullanılırGet-ChildItem
. Tee-Object
FileName parametresini kullanarak kanallı sonuçları konsola yazdırır. Where-Object
, içeriğini Raw parametresiyle Get-Content
tek bir dize olarak alarak ve bu dizeyi $frontMatterPattern
ile karşılaştırarak dosyaları filtreler.
Son olarak, örnek tanımlı bir ön madde meta veri bloğuna sahip klasördeki dosyaların adlarını yazdırır.
Parametreler
-Append
Cmdlet'in çıkışı belirtilen dosyaya eklediğini gösterir. Bu parametre olmadan yeni içerik, dosyadaki mevcut içeriğin yerini uyarı olmadan alır.
Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.
Tür: | SwitchParameter |
Position: | Named |
Default value: | False |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: utf8NoBOM
.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.ansi
: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek PowerShell 7.4'e eklendi.bigendianunicode
: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.oem
: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.unicode
: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.utf7
: UTF-7 biçiminde kodlar.utf8
: UTF-8 biçiminde kodlar.utf8BOM
: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi-Encoding 1251
) sayısal kimliklerine veya kayıtlı kod sayfalarının dize adlarına da (gibi-Encoding "windows-1251"
) izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
PowerShell 7.4'den başlayarak Kodlama parametresinin değerini kullanarak Ansi
geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.
Bu parametre PowerShell 7.2'de kullanıma sunulmuştur.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7
bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | 1 |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-FilePath
Bu cmdlet'in nesneyi Joker karakterlere kaydettiği bir dosyaya izin verilir, ancak tek bir dosyaya çözümlenmesi gerekir.
PowerShell 7'den başlayarak, FilePath'i Windows'ta veya /dev/tty
Windows dışı sistemlerde olarak \\.\CON
belirttiğinizde, InputObject konsolda yazdırılır. Bu dosya yolları, sistemdeki geçerli terminalin konsol cihazına karşılık gelir ve InputObject'i yazdırmanıza ve tek bir komutla çıkış akışına göndermenize olanak tanır.
Tür: | String |
Diğer adlar: | Path |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | True |
-InputObject
Kaydedilecek ve görüntülenecek nesneyi belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın. Bir nesneyi öğesine Tee-Object
de yöneltebilirsiniz.
komutu sonuçları Tee-Object
yerine ile Tee-Object
InputObject parametresini kullandığınızda, değer bir koleksiyon olsa bile InputObject değeri tek bir nesne olarak değerlendirilir.
Tür: | PSObject |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | True |
Joker karakterleri kabul et: | False |
-LiteralPath
Bu cmdlet'in nesneyi kaydettiği dosyayı belirtir. FilePath'in aksine, LiteralPath parametresinin değeri tam olarak yazıldığı gibi kullanılır. Hiçbir karakter joker karakter olarak yorumlanmamıştır. Yol kaçış karakterleri içeriyorsa, tek tırnak içine alın. Tek tırnak işaretleri PowerShell'e hiçbir karakteri kaçış dizisi olarak yorumlamaması gerektiğini söyler.
Tür: | String |
Diğer adlar: | PSPath, LP |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Variable
Cmdlet'in nesneyi kaydettiği değişkeni belirtir. Önceki dolar işareti ($
) olmadan bir değişken adı girin.
Tür: | String |
Position: | Named |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
Girişler
Nesneleri bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
Bu cmdlet yeniden yönlendirildiği nesneyi döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Tee-Object
içerir:
- Windows:
tee
Ayrıca cmdlet'ini Out-File
veya yeniden yönlendirme işlecini de kullanabilirsiniz. Her ikisi de çıkışı bir dosyaya kaydeder ancak işlem hattına göndermez.
PowerShell 6'da başlayarak, Tee-Object
dosyalara yazarken BOM olmayan UTF-8 kodlamasını kullanır. Farklı bir kodlamaya ihtiyacınız varsa Kodlama parametresiyle cmdlet'ini kullanınOut-File
.
İlişkili Bağlantılar
PowerShell