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-ModuleManifest
souboru .
Typ: | String[] |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
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.