Aracılığıyla paylaş


Write-Information

PowerShell'in bir komut için bilgi akışı verilerini nasıl işlediğini belirtir.

Sözdizimi

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

Description

Write-Information cmdlet'i, PowerShell'in bir komut için bilgi akışı verilerini nasıl işlediğini belirtir.

Windows PowerShell 5.0, yeni, yapılandırılmış bir bilgi akışı sunar. Bu akışı, bir betik ile onu çağıranlar veya ana uygulama arasında yapılandırılmış veriler iletmek için kullanabilirsiniz. Write-Information akışa bilgilendirıcı bir ileti eklemenize ve PowerShell'in bir komut için bilgi akışı verilerini nasıl işleyeceğini belirtmenize olanak tanır. Bilgi akışları, PowerShell.Streams, işler ve zamanlanmış görevler için de işlev görür.

Not

Bilgi akışı, iletilerine "[Stream Name]:" ön eki eklemenin standart kuralına uymaz. Bu, kısalık ve görsel sadelik için tasarlanmıştır.

$InformationPreference tercih değişkeninin değeri, sizin Write-Information'e sağladığınız mesajın bir betik işleminde beklenen noktada görüntülenip görüntülenmeyeceğini belirler. Bu değişkenin varsayılan değeri SilentlyContinueolduğundan, bilgilendirici iletiler varsayılan olarak gösterilmez. $InformationPreferencedeğerini değiştirmek istemiyorsanız, komutunuza InformationAction common parametresini ekleyerek değerini geçersiz kılabilirsiniz. Daha fazla bilgi için bkz. about_Preference_Variables ve about_CommonParameters.

Not

Windows PowerShell 5.0'dan başlayarak, Write-HostWrite-Information için bir sarmalayıcıdır. Bu, bilgi akışına çıktı yaymak için Write-Host kullanmanıza olanak tanır. Bu, geriye dönük uyumluluğu korurken Write-Host kullanılarak yazılan verilerin yakalanmasını veya gizlenmesini sağlar. Daha fazla bilgi için bkz. Write-Host

Örnekler

Örnek 1: Get- results için bilgi yazma

Bu örnekte, 'p' ile başlayan Get-Process değerine sahip tüm işlemleri bulmak için komutunu çalıştırmadan önce "P' ile başlayan işlemler" adlı bir bilgilendirme iletisi gösterirsiniz. $InformationPreference değişkeni hala varsayılan değerine ayarlı olduğundan SilentlyContinue, değerini geçersiz kılmak için $InformationPreference parametresini ekler ve iletiyi gösterirsiniz. InformationAction değeri Continue'dir, bu da iletinizin gösterildiği, ancak betiğin veya komutun henüz tamamlanmadıysa devam edeceği anlamına gelir.

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

Örnek 2: Bilgi yazma ve etiketleme

Bu örnekte, kullanıcılara geçerli komutu çalıştırmaları tamamlandıktan sonra başka bir komut çalıştırmaları gerektiğini bildirmek için Write-Information kullanırsınız. Örnek, bilgi iletisine "Instructions" etiketini ekler. Bu komutu çalıştırdıktan sonra, "Instructions"etiketli iletiler için bilgi akışında arama yaptığınızda ileti sonuçlarda yer alır.

$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.

Örnek 3: Bir dosyaya bilgi yazma

Bu örnekte, işlevindeki bilgi akışını Info.txtkodunu kullanarak 6> yönlendirebilirsiniz. Info.txt dosyasını açtığınızda ,"İşte burada" metnini görürsünüz.

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

Örnek 4: Nesneyi bilgi yazımı için iletme

Bu örnekte, birden çok işlem hattından geçen Write-Information nesne çıkışından en yüksek 10 CPU kullanım işlemini yazmak için Get-Process kullanabilirsiniz.

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}

Örnek 5: Bilgi kayıtlarını bir değişkene kaydetme

InformationVariable parametresini kullanarak, bilgi kayıtlarını bir değişkene kaydedebilirsiniz. Bu, betikte daha sonra bilgi akışı iletilerini incelemenize olanak tanır.

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

Parametreler

-MessageData

Kullanıcılara betik veya komut çalıştırırken görüntülemek istediğiniz bilgilendirici bir ileti belirtir. En iyi sonuçlar için, bilgi iletisini tırnak içine alın.

Tür:Object
Diğer adlar:Msg, Message
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Tags

Write-Informationile bilgi akışına eklediğiniz iletileri sıralamak ve filtrelemek için kullanabileceğiniz bir veya daha fazla dize. Bu parametre, New-ModuleManifest parametresine benzer şekilde çalışır.

Tür:String[]
Position:1
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

Object

Bu cmdlet'e bilgi akışına geçirmek için nesneleri kanala aktarabilirsiniz.

Çıkışlar

None

Bu cmdlet çıkış döndürmez. Yalnızca bilgi iletisi akışına yazar.