Sdílet prostřednictvím


Write-Information

Určuje, jak PowerShell zpracovává data datového proudu informací pro příkaz.

Syntaxe

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

Description

Rutina Write-Information určuje, jak PowerShell zpracovává data datového proudu informací pro příkaz.

Windows PowerShell 5.0 zavádí nový strukturovaný informační proud. Tento datový proud můžete použít k přenosu strukturovaných dat mezi skriptem a jeho volajícími nebo hostitelskou aplikací. Write-Information umožňuje přidat do datového proudu informační zprávu a určit, jak PowerShell zpracovává data datového proudu informací pro příkaz. Informační streamy fungují také pro PowerShell.Streamsúlohy a naplánované úkoly.

Poznámka:

Informační stream nedodržuje standardní konvenci předpony zpráv s názvem [Název streamu]:" To bylo určeno pro stručnost a vizuální čistotu.

Hodnota $InformationPreference proměnné předvoleb určuje, jestli se zpráva, kterou Write-Information zadáte, zobrazí v očekávaném bodě operace skriptu. Protože výchozí hodnota této proměnné je SilentlyContinue, ve výchozím nastavení se informační zprávy nezobrazují. Pokud nechcete hodnotu změnit $InformationPreference, můžete její hodnotu přepsat přidáním běžného parametru InformationAction do příkazu. Další informace najdete v tématu about_Preference_Variables a about_CommonParameters.

Poznámka:

Počínaje windows PowerShellem 5.0 je obálka, Write-Host Write-Information která umožňuje vygenerovat Write-Host výstup do informačního datového proudu. To umožňuje zachytávání nebo potlačení dat zapsaných pomocí Write-Host při zachování zpětné kompatibility. Další informace naleznete v tématu Write-Host

Příklady

Příklad 1: Zápis informací pro získání výsledků

V tomto příkladu před spuštěním Get-Process příkazu zobrazíte informační zprávu "Procesy začínající písmenem P", aby se zjistily všechny procesy, které mají hodnotu Name začínající na "p". $InformationPreference Vzhledem k tomu, že proměnná je stále nastavená na výchozí hodnotu SilentlyContinue, přidáte parametr InformationAction, který přepíše $InformationPreference hodnotu a zobrazí zprávu. Hodnota InformationAction je Pokračovat, což znamená, že se zobrazí zpráva, ale skript nebo příkaz pokračuje, pokud ještě není dokončen.

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

Příklad 2: Zápis informací a označení

V tomto příkladu použijete Write-Information k tomu, abyste uživatelům dali vědět, že po dokončení spuštění aktuálního příkazu budou muset spustit další příkaz. Příklad přidá značku "Instructions" do informační zprávy. Po spuštění tohoto příkazu se při hledání informačního streamu zobrazí zprávy označené "Instructions", zpráva je ve výsledcích.

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

Příklad 3: Zápis informací do souboru

V tomto příkladu přesměrujete datový proud informací ve funkci na Info.txt použití kódu 6>. Když soubor otevřete Info.txt , zobrazí se text "Tady přejdete".

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

Příklad 4: Předání objektu k zápisu informací

V tomto příkladu můžete použít Write-Information k zápisu prvních 10 procesů nejvyššího využití procesoru z výstupu objektu Get-Process , který prochází více kanály.

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}

Příklad 5: Ukládání záznamů informací do proměnné

Pomocí parametru InformationVariable můžete uložit záznamy informací do proměnné. To vám umožní zkontrolovat zprávy datového proudu informací později ve skriptu.

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

Parametry

-MessageData

Určuje informační zprávu, kterou chcete uživatelům zobrazit při spuštění skriptu nebo příkazu. Nejlepších výsledků dosáhnete uzavřením informační zprávy do uvozovek.

Typ:Object
Aliasy:Msg, Message
Position:0
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:True
Přijmout zástupné znaky:False

-Tags

Jeden nebo více řetězců, které můžete použít k řazení a filtrování zpráv, které jste přidali do informačního streamu pomocí Write-Information. Tento parametr funguje podobně jako parametr Tags v New-ModuleManifestsouboru .

Typ:String[]
Position:1
Default value:None
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

Object

Objekty můžete předat do informačního datového proudu této rutině.

Výstupy

None

Tato rutina nevrátí žádný výstup. Zapisuje se pouze do datového proudu informačních zpráv.