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.
$InformationPreference
değ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-Host
Write-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.txt
kodunu 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-Information
ile 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
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.