Tee-Object
Menyimpan output perintah dalam file atau variabel dan juga mengirimkannya ke alur.
Sintaks
File (Default)
Tee-Object
[-FilePath] <String>
[-InputObject <PSObject>]
[-Append]
[<CommonParameters>]
LiteralFile
Tee-Object
-LiteralPath <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Variable
Tee-Object
-Variable <String>
[-InputObject <PSObject>]
[<CommonParameters>]
Deskripsi
Output Tee-Object penulisan cmdlet dalam dua arah. Ini menyimpan output dalam file atau variabel dan juga mengirimkannya ke alur. Jika Tee-Object adalah perintah terakhir dalam alur, output perintah ditampilkan di konsol.
Secara internal, Tee-Object menggunakan Set-Variable perintah dan Out-File . Perintah ini mendukung parameter WhatIf . Perintah Tee-Object tidak mendukung parameter WhatIf . Namun, jika Anda membungkus Tee-Object dalam skrip atau fungsi yang mendukung parameter WhatIf , Tee-Object meneruskan status WhatIf ke Set-Variable perintah dan Out-File .
Contoh
Contoh 1: Proses output ke file dan ke konsol
Contoh ini mendapatkan daftar proses yang berjalan di komputer dan mengirim hasilnya ke file. Karena jalur kedua tidak ditentukan, proses juga ditampilkan di konsol.
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
...
Contoh 2: Proses output ke variabel dan 'Select-Object'
Contoh ini mendapatkan daftar proses yang berjalan di komputer, menyimpannya ke variabel $proc, dan menyalurkannya ke Select-Object.
Get-Process notepad | Tee-Object -Variable proc | Select-Object ProcessName, Handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
Cmdlet Select-Object memilih ProcessName dan Menangani properti. Perhatikan bahwa variabel $proc menyertakan informasi default yang dikembalikan oleh Get-Process.
Contoh 3: File sistem output ke dua file log
Contoh ini menyimpan daftar file sistem dalam dua file log, file kumulatif, dan file saat ini.
Get-ChildItem -Path D: -File -System -Recurse |
Tee-Object -FilePath "C:\test\AllSystemFiles.txt" -Append |
Out-File C:\test\NewSystemFiles.txt
Perintah menggunakan cmdlet Get-ChildItem untuk melakukan pencarian rekursif untuk file sistem pada drive D: . Operator alur (|) mengirim daftar ke Tee-Object, yang menambahkan daftar ke file AllSystemFiles.txt dan meneruskan daftar ke bawah alur ke cmdlet Out-File, yang menyimpan daftar di NewSystemFiles.txt file.
Contoh 4: Gunakan 'Tee-Object' dalam skrip dengan parameter **WhatIf**
Perintah Tee-Object tidak mendukung parameter WhatIf . Namun, jika Anda membungkus Tee-Object dalam skrip atau fungsi yang mendukung parameter WhatIf , Tee-Object meneruskan status WhatIf ke Set-Variable perintah dan Out-File yang digunakannya secara internal.
PS> function Test-Tee {
[Cmdletbinding(SupportsShouldProcess)]
Param()
$true|tee -Variable b
"Variable `$b is set to '$b'"
}
PS> Test-Tee
True
Variable $b is set to 'True'
PS> Test-Tee -WhatIf
True
What if: Performing the operation "Set variable" on target "Name: b Value: True".
Variable $b is set to ''
Parameter
-Append
Menunjukkan bahwa cmdlet menambahkan output ke file yang ditentukan. Tanpa parameter ini, konten baru menggantikan konten yang ada dalam file tanpa peringatan.
Parameter ini diperkenalkan di Windows PowerShell 3.0.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
File
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-FilePath
Menentukan file yang cmdlet ini menyimpan objek ke karakter Wildcard diizinkan, tetapi harus diselesaikan ke satu file.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | True |
| DontShow: | False |
Kumpulan parameter
File
| Position: | 0 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan objek yang akan disimpan dan ditampilkan. Masukkan variabel yang berisi objek atau ketik perintah atau ekspresi yang mendapatkan objek. Anda juga dapat menyalurkan objek ke Tee-Object.
Saat Anda menggunakan parameter InputObject dengan Tee-Object, alih-alih hasil perintah pipa untuk Tee-Object, nilai InputObject diperlakukan sebagai objek tunggal meskipun nilainya adalah koleksi.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-LiteralPath
Menentukan file tempat cmdlet ini menyimpan objek. Tidak seperti FilePath, nilai parameter LiteralPath digunakan persis seperti yang diketik. Tidak ada karakter yang ditafsirkan sebagai wildcard. Jika jalur menyertakan karakter escape, bungkus jalur tersebut dalam tanda kutip tunggal. Tanda kutip tunggal memberi tahu PowerShell untuk tidak menginterpretasikan karakter apa pun sebagai urutan escape.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | PSPath |
Kumpulan parameter
LiteralFile
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Variable
Menentukan variabel tempat cmdlet menyimpan objek. Masukkan nama variabel tanpa tanda dolar sebelumnya ($).
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
Variable
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek ke cmdlet ini.
Output
PSObject
Cmdlet ini mengembalikan objek yang dialihkan.
Catatan
Windows PowerShell menyertakan alias berikut untuk Tee-Object:
tee
Anda juga dapat menggunakan cmdlet Out-File atau operator pengalihan, yang keduanya menyimpan output dalam file tetapi tidak mengirimkannya ke alur.
Tee-Object menggunakan pengodean "Unicode" (UTF-16LE) saat menulis ke file. Jika Anda memerlukan pengodean yang berbeda, gunakan cmdlet Out-File dengan parameter Pengodean.