Write-Host vs Write-Information in PowerShell 5

Es ist gut bekannt, dassWrite-Host ist böse. ImPowerShell 5, Write-Information wird hinzugefügt und ersetztWrite-Host.

Aber wirklich, was ist besser?
Write-Host ist böse, da es keine Pipeline verwendet, sodass die Eingabenachricht nicht wiederverwendet werden kann.
Aber wasWrite-Host do ist nur etwas in der Konsole zu zeigen, oder? In welchem Fall werden wir die Eingabe wiederverwenden?
Anyway, wenn wir die Eingabe wirklich wiederverwenden möchten, warum nicht einfach so etwas schreiben:

$foo = "Some message to be reused like saving to a file"
Write-Host $foo
$foo | Out-File -Path "D:\foo.log"

Ein weiterer Nachteil vonWrite-Host ist dass,Write-Host kann mithilfe von @ angegeben werden, in welcher Farbe die Nachrichten in der Konsole angezeigt werde-ForegroundColor und-BackgroundColor.

Auf der anderen Seite mitWrite-Information, die Eingabenachricht kann über die Pipeline Nr. 6 verwendet werden, wo immer wir wollen. Und muss nicht die zusätzlichen Codes schreiben, wie ich oben schreibe. Die Schattenseite dabei ist jedoch, dass wir Folgendes tun müssen, wenn wir Nachrichten an die Konsole schreiben und auch in der Datei speichern möchten:

# Always set the $InformationPreference variable to "Continue"
$InformationPreference = "Continue";

# if we don't want something like this:
# ======= Example 1 =======
# File Foo.ps1
$InformationPreference = "Continue";
Write-Information "Some Message"
Write-Information "Another Message"

# File AlwaysRunThisBeforeEverything.ps1
.\Foo.ps1 6>"D:\foo.log"
# ======= End of Example 1 =======

# then we have to add '6>"D:\foo.log"' to every lines of Write-Information like this:
# ======= Example 2 =======
$InformationPreference = "Continue";
Write-Information "Some Message" 6>"D:\foo.log"
Write-Information "Another Message" 6>"D:\foo.log"
# ======= End of Example 2 =======

in bisschen überflüssig, denke ic

Ich kenne nur einen kleinen Aspekt dieser "vs" Sache, und es muss etwas aus meinem Kopf haben. Gibt es noch etwas, das mich glauben lässt, dassWrite-Information ist besser alsWrite-Host, bitte hinterlassen Sie hier Ihre freundlichen Antworten.
Vielen Dank

Antworten auf die Frage(10)

Ihre Antwort auf die Frage