Bagikan melalui


Write-Information

Menentukan cara PowerShell menangani data aliran informasi untuk perintah.

Sintaks

Default (Default)

Write-Information
    [-MessageData] <Object>
    [[-Tags] <String[]>]
    [<CommonParameters>]

Deskripsi

Cmdlet Write-Information menentukan cara 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 cara PowerShell menangani data aliran informasi untuk perintah. Aliran informasi juga berfungsi untuk PowerShell.Streams, pekerjaan, dan tugas terjadwal.

Nota

Aliran informasi tidak mengikuti konvensi standar awalan pesannya dengan "[Nama Aliran]:". Ini ditujukan untuk kesederhanaan dan kebersihan visual.

Nilai variabel preferensi $InformationPreference menentukan apakah pesan yang Anda berikan ke Write-Information ditampilkan pada titik yang diharapkan dalam operasi skrip. Karena nilai default variabel ini SilentlyContinue, secara default, pesan informasi tidak ditampilkan. Jika Anda tidak ingin mengubah nilai $InformationPreference, Anda dapat mengambil alih nilainya dengan menambahkan InformationAction parameter umum ke perintah Anda. Untuk informasi lebih lanjut, lihat tentang_Variabel_Preferensi dan tentang_ParameterUmum.

Nota

Mulai 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 penyimpanan atau pemblokiran data yang ditulis menggunakan Write-Host sambil mempertahankan kompatibilitas ke belakang. Untuk informasi selengkapnya, lihat Write-Host

Contoh

Contoh 1: Menuliskan informasi tentang hasil Get-

Dalam contoh ini, Anda menampilkan pesan informasi, "Proses yang dimulai dengan 'P'", sebelum menjalankan perintah untuk menemukan semua proses yang memiliki nilai Nama yang dimulai dengan 'p'. Karena variabel masih diatur ke defaultnya, SilentlyContinue, Anda menambahkan parameter InformationAction untuk mengambil alih nilai , dan menampilkan pesan. Nilai InformationAction adalah Lanjutkan, yang artinya pesan Anda ditampilkan, tetapi skrip atau perintah akan terus 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 ke Info.txt menggunakan kode 6>. Saat Anda membuka file Info.txt, Anda akan melihat teks "Ini untuk Anda."

function Test-Info
{
    Get-Process P*
    Write-Information "Here you go"
}
Test-Info 6> Info.txt

Contoh 4: Meneruskan objek untuk mencatat informasi

Dalam contoh ini, Anda dapat menggunakan Write-Information untuk menulis 10 proses pemanfaatan CPU tertinggi teratas dari output objek Get-Process 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.

Properti parameter

Jenis:Object
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Msg, Pesan

Set parameter

(All)
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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 .

Properti parameter

Jenis:

String[]

Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:1
Wajib:False
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

Object

Anda dapat menyalurkan objek untuk diteruskan ke aliran informasi ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output. Ini hanya menulis ke alur pesan informasi.