Mam trochę zamieszania co do różnych sposobów drukowania (echa) na konsoli. Widziałem, że istnieje wiele sposobów zapisywania danych wyjściowych do konsoli, takich jak:
Write-Host "Hello world1"
"Hello World2"
Out-Host -InputObject "Hello World3"
Wszystkie trzy sposoby zostaną wydrukowane na konsoli. Środkowy jest w jakiś sposób prostszy, mniej szczegółowy i łatwiejszy w użyciu. Uważam również, że pisząc funkcję taką jak:
function GetValues()
{
"1"
"2"
}
Nadal zwraca dwa ciągi w potoku:
Nadal mogę wydrukować wartości:
foreach ($s in GetValues)
{
Write-Host "s: " $s
}
Odkryłem, że użycie samego ciągu znaków w cudzysłowie nie zawsze pojawia się na niestandardowych hostach i że musiałem użyć Write-Host, aby uzyskać wartości do drukowania na niestandardowych hostach.
W jakiś sposób wydaje mi się to zagmatwane. Ma "Print something"
być aliasem Write-Host
lub jaki jest zamiar?
źródło
Środkowy pisze do potoku.
Write-Host
iOut-Host
pisze do konsoli. „echo” to alias, dlaWrite-Output
którego również zapisuje dane do potoku. Najlepszym sposobem zapisu w konsoli byłoby użycie poleceniaWrite-Host
cmdlet.Gdy obiekt jest zapisywany w potoku, może być używany przez inne polecenia w łańcuchu. Na przykład:
ale od tego czasu to nie zadziała
Write-Host
zapisuje do konsoli, a nie do potoku (Zrób coś nie otrzyma ciągu):źródło