Write-Information
Menentukan cara PowerShell menangani data aliran informasi untuk perintah.
Sintaks
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Deskripsi
Write-Information
Cmdlet menentukan bagaimana PowerShell menangani data aliran informasi untuk perintah.
Windows PowerShell 5.0 memperkenalkan aliran informasi terstruktur baru. Anda dapat menggunakan aliran ini untuk mengirimkan data terstruktur antara skrip dan pemanggilnya atau aplikasi host.
Write-Information
memungkinkan Anda menambahkan pesan informasi ke aliran, dan menentukan bagaimana PowerShell menangani data aliran informasi untuk perintah. Aliran informasi juga berfungsi untuk PowerShell.Streams
, pekerjaan, dan tugas terjadwal.
Catatan
Aliran informasi tidak mengikuti konvensi standar awalan pesannya dengan "[Nama Aliran]:". Ini ditujukan untuk kebersihan visual dan kebersihan.
Nilai $InformationPreference
variabel preferensi menentukan apakah pesan yang Anda berikan Write-Information
ditampilkan pada titik yang diharapkan dalam operasi skrip. Karena nilai default variabel ini adalah SilentlyContinue, secara default, pesan informasi tidak ditampilkan.
Jika Anda tidak ingin mengubah nilai $InformationPreference
, Anda dapat mengambil alih nilainya dengan menambahkan parameter umum InformationAction ke perintah Anda. Untuk informasi selengkapnya, lihat about_Preference_Variables dan about_CommonParameters.
Catatan
Mulai dari Windows PowerShell 5.0, Write-Host
adalah pembungkus untuk Write-Information
Ini memungkinkan Anda menggunakan Write-Host
untuk memancarkan output ke aliran informasi. Ini memungkinkan pengambilan atau penindasan data yang ditulis menggunakan Write-Host
sambil mempertahankan kompatibilitas mundur. Untuk informasi selengkapnya lihat Write-Host
Contoh
Contoh 1: Tulis informasi untuk Get- hasil
Dalam contoh ini, Anda menampilkan pesan informasi, "Proses dimulai dengan 'P'", sebelum menjalankan Get-Process
perintah untuk menemukan semua proses yang memiliki nilai Nama yang dimulai dengan 'p'.
$InformationPreference
Karena variabel masih diatur ke defaultnya, SilentlyContinue, Anda menambahkan parameter InformationAction untuk mengambil alih $InformationPreference
nilai, dan menampilkan pesan. Nilai InformationAction adalah Lanjutkan, yang berarti pesan Anda ditampilkan, tetapi skrip atau perintah berlanjut, jika belum selesai.
Write-Information -MessageData "Processes starting with 'P'" -InformationAction Continue
Get-Process -Name p*
Processes starting with 'P'
18 19.76 15.16 0.00 6232 0 PFERemediation
20 8.92 25.15 0.00 24944 0 policyHost
9 1.77 7.64 0.00 1780 0 powercfg
10 26.67 32.18 0.00 7028 0 powercfg
8 26.55 31.59 0.00 13600 0 powercfg
9 1.66 7.55 0.00 22620 0 powercfg
21 6.17 4.54 202.20 12536 1 PowerMgr
42 84.26 12.71 2,488.84 20588 1 powershell
27 47.07 45.38 2.05 25988 1 powershell
27 24.45 5.31 0.00 12364 0 PresentationFontCache
92 112.04 13.36 82.30 13176 1 pwsh
106 163.73 93.21 302.25 14620 1 pwsh
227 764.01 92.16 1,757.22 25328 1 pwsh
Contoh 2: Tulis informasi dan tandai
Dalam contoh ini, Anda menggunakan Write-Information
untuk memberi tahu pengguna bahwa mereka harus menjalankan perintah lain setelah selesai menjalankan perintah saat ini. Contoh menambahkan tag "Instructions"
ke pesan informasi. Setelah menjalankan perintah ini, saat Anda mencari aliran informasi untuk pesan yang ditandai "Instructions"
, pesan ada di hasilnya.
$message = "To filter your results for PowerShell, pipe your results to the Where-Object cmdlet."
Get-Process -Name p*
Write-Information -MessageData $message -Tags "Instructions" -InformationAction Continue
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
18 19.76 15.16 0.00 6232 0 PFERemediation
20 8.92 25.15 0.00 24944 0 policyHost
9 1.77 7.64 0.00 1780 0 powercfg
10 26.67 32.18 0.00 7028 0 powercfg
8 26.55 31.59 0.00 13600 0 powercfg
9 1.66 7.55 0.00 22620 0 powercfg
21 6.17 4.54 202.20 12536 1 PowerMgr
42 84.26 12.71 2,488.84 20588 1 powershell
27 47.07 45.38 2.05 25988 1 powershell
27 24.45 5.31 0.00 12364 0 PresentationFontCache
92 112.04 13.36 82.30 13176 1 pwsh
106 163.73 93.21 302.25 14620 1 pwsh
227 764.01 92.16 1,757.22 25328 1 pwsh
To filter your results for PowerShell, pipe your results to the Where-Object cmdlet.
Contoh 3: Menulis informasi ke file
Dalam contoh ini, Anda mengalihkan aliran informasi dalam fungsi untuk Info.txt
menggunakan kode 6>
. Saat membuka Info.txt
file, Anda akan melihat teks "Di sini Anda pergi."
function Test-Info
{
Get-Process P*
Write-Information "Here you go"
}
Test-Info 6> Info.txt
Contoh 4: Meneruskan objek untuk menulis informasi
Dalam contoh ini, Anda dapat menggunakan Write-Information
untuk menulis 10 proses pemanfaatan CPU tertinggi teratas dari Get-Process
output objek yang telah melewati beberapa alur.
Get-Process | Sort-Object CPU -Descending |
Select-Object Id, ProcessName, CPU -First 10 |
Write-Information -InformationAction Continue
@{Id=12692; ProcessName=chrome; CPU=39431.296875}
@{Id=21292; ProcessName=OUTLOOK; CPU=23991.875}
@{Id=10548; ProcessName=CefSharp.BrowserSubprocess; CPU=20546.203125}
@{Id=312848; ProcessName=Taskmgr; CPU=13173.1875}
@{Id=10848; ProcessName=SnapClient; CPU=7014.265625}
@{Id=9760; ProcessName=Receiver; CPU=6792.359375}
@{Id=12040; ProcessName=Teams; CPU=5605.578125}
@{Id=498388; ProcessName=chrome; CPU=3062.453125}
@{Id=6900; ProcessName=chrome; CPU=2546.9375}
@{Id=9044; ProcessName=explorer; CPU=2358.765625}
Contoh 5: Menyimpan rekaman informasi ke variabel
Dengan menggunakan parameter InformationVariable, Anda dapat menyimpan rekaman informasi ke variabel. Ini memungkinkan Anda untuk memeriksa pesan aliran informasi nanti dalam skrip.
Get-Process -Id $PID |
Select-Object ProcessName, CPU, Path |
Write-Information -Tags 'PowerShell' -InformationVariable 'InfoMsg'
$InfoMsg | Select-Object *
MessageData : @{ProcessName=pwsh; CPU=12.36; Path=/opt/microsoft/powershell/7/pwsh}
Source : Write-Information
TimeGenerated : 10/19/2023 11:28:15
Tags : {PowerShell}
User : sdwheeler
Computer : circumflex
ProcessId : 237
NativeThreadId : 261
ManagedThreadId : 10
Parameter
-MessageData
Menentukan pesan informasi yang ingin Anda tampilkan kepada pengguna saat mereka menjalankan skrip atau perintah. Untuk hasil terbaik, sertakan pesan informasi dalam tanda kutip.
Jenis: | Object |
Alias: | Msg, Message |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
-Tags
Satu atau beberapa string yang dapat Anda gunakan untuk mengurutkan dan memfilter pesan yang telah Anda tambahkan ke aliran informasi dengan Write-Information
. Parameter ini berfungsi mirip dengan parameter Tag di New-ModuleManifest
.
Jenis: | String[] |
Position: | 1 |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan objek untuk diteruskan ke aliran informasi ke cmdlet ini.
Output
None
Cmdlet ini tidak mengembalikan output. Ini hanya menulis ke aliran pesan informasi.