Aracılığıyla paylaş


Write-Information

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

Sözdizimi

Default EnterprisePublishing

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 komut dosyası 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.

Uyarı

Bilgi akışı, iletilerine "[Stream Name]:" ön eki eklemenin standart kuralına uymaz. Bu, kısalık ve görsel temizlik amacıyla amaçlandı.

$InformationPreference tercih değişkeninin değeri, Write-Information'e sağladığınız mesajın, bir betiğin işlemi sırasında 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.

Uyarı

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 Continueolarak ayarlanmıştır. Bu, iletinizin gösterildiği, ancak betiğin veya komutun henüz tamamlanmadığı sürece devam ettiğ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şlevdeki bilgi akışını Info.txtkodunu kullanarak 6>'a yönlendirirsiniz. 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 yazma işlemi için geçirme

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.

Parametre özellikleri

Tür:Object
Default value:None
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Msg, Mesaj

Parametre kümeleri

(All)
Position:0
Zorunlu:True
İşlem hattından gelen değer:True
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer: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.

Parametre özellikleri

Tür:

String[]

Default value:None
Joker karakterleri destekler:False
DontShow:False

Parametre kümeleri

(All)
Position:1
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

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 mesajı akışına yazar.