Bagikan melalui


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

Object

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.