ค้นหาเว็บไซต์

Write-Host (Microsoft.PowerShell.Utility)


Write-Host

โมดูล :
Microsoft.PowerShell.Utility

เขียนเอาต์พุตแบบกำหนดเองไปยังโฮสต์

ไวยากรณ์

Write-Host
     [[-Object] <Object>]
     [-NoNewline]
     [-Separator <Object>]
     [-ForegroundColor <ConsoleColor>]
     [-BackgroundColor <ConsoleColor>]
     [<CommonParameters>]

คำอธิบาย

วัตถุประสงค์หลักของ Write-Host cmdlet คือการสร้างเอาต์พุตสำหรับ (โฮสต์) - แสดงผลเท่านั้น เช่น การพิมพ์ข้อความสีเช่นเมื่อแจ้งให้ผู้ใช้ป้อนข้อมูลร่วมกับ Read-Host Write-Host ใช้เมธอด ToString() เพื่อเขียนเอาต์พุต ในทางตรงกันข้าม หากต้องการส่งข้อมูลออกไปยังไปป์ไลน์ ให้ใช้ Write-Output หรือเอาต์พุตโดยนัย

คุณสามารถระบุสีของข้อความได้โดยใช้พารามิเตอร์ ForegroundColor และคุณสามารถระบุสีพื้นหลังได้โดยใช้พารามิเตอร์ BackgroundColor พารามิเตอร์ Separator ช่วยให้คุณสามารถระบุสตริงเพื่อใช้แยกอ็อบเจ็กต์ที่แสดง ผลลัพธ์เฉพาะขึ้นอยู่กับโปรแกรมที่โฮสต์ PowerShell

บันทึก

เริ่มต้นใน Windows PowerShell 5.0 Write-Host เป็นตัวตัดคำสำหรับ Write-Information ซึ่งช่วยให้คุณใช้ Write-Host เพื่อส่งออกเอาต์พุตไปยัง กระแสข้อมูล ซึ่งช่วยให้สามารถ จับภาพ หรือ ระงับ ข้อมูลที่เขียนโดยใช้ Write-Host ในขณะที่ยังคงรักษาความเข้ากันได้แบบย้อนหลัง

ตัวแปรการตั้งค่า $InformationPreference และพารามิเตอร์ทั่วไป InformationAction ไม่มีผลกับข้อความ Write-Host ข้อยกเว้นสำหรับกฎนี้คือ -InformationAction Ignore ซึ่งจะระงับเอาต์พุต Write-Host ได้อย่างมีประสิทธิภาพ (ดู "ตัวอย่างที่ 5")

ตัวอย่าง

ตัวอย่างที่ 1: เขียนลงในคอนโซลโดยไม่ต้องเพิ่มบรรทัดใหม่

Write-Host "no newline test " -NoNewline
Write-Host "second string"

no newline test second string

คำสั่งนี้แสดงสตริง 'no newline test' พร้อมด้วยพารามิเตอร์ NoNewline

มีการเขียนสตริงที่สอง แต่จะจบลงที่บรรทัดเดียวกับสตริงแรกเนื่องจากไม่มีการขึ้นบรรทัดใหม่เพื่อแยกสตริง

ตัวอย่างที่ 2: เขียนลงในคอนโซลและรวมตัวคั่น

Write-Host (2,4,6,8,10,12) -Separator ", +2= "

2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12

คำสั่งนี้แสดงเลขคู่ตั้งแต่สองถึงสิบสอง พารามิเตอร์ ตัวคั่น ใช้เพื่อเพิ่มสตริง , +2= (ลูกน้ำ, ช่องว่าง, +, 2, =, ช่องว่าง)

ตัวอย่างที่ 3: เขียนด้วยข้อความและสีพื้นหลังที่แตกต่างกัน

Write-Host (2,4,6,8,10,12) -Separator ", -> " -ForegroundColor DarkGreen -BackgroundColor White

2, -> 4, -> 6, -> 8, -> 10, -> 12

คำสั่งนี้แสดงเลขคู่ตั้งแต่สองถึงสิบสอง โดยใช้พารามิเตอร์ ForegroundColor เพื่อแสดงผลข้อความสีเขียวเข้ม และใช้พารามิเตอร์ BackgroundColor เพื่อแสดงพื้นหลังสีขาว

ตัวอย่างที่ 4: เขียนด้วยข้อความและสีพื้นหลังที่แตกต่างกัน

Write-Host "Red on white text." -ForegroundColor red -BackgroundColor white

Red on white text.

คำสั่งนี้แสดงสตริง "สีแดงบนข้อความสีขาว" ข้อความเป็นสีแดง ตามที่กำหนดโดยพารามิเตอร์ ForegroundColor พื้นหลังเป็นสีขาว ตามที่กำหนดโดยพารามิเตอร์ BackgroundColor

ตัวอย่างที่ 5: ไม่แสดงเอาต์พุตจาก Write-Host

# The following two statements can be used to effectively suppress output from Write-Host
Write-Host "I won't print" -InformationAction Ignore
Write-Host "I won't print" 6> $null

คำสั่งเหล่านี้ระงับเอาต์พุตของ cmdlet Write-Host ได้อย่างมีประสิทธิภาพ อันแรกใช้พารามิเตอร์ InformationAction ที่มีค่า Ignore เพื่อระงับเอาต์พุตไปยังสตรีมข้อมูล ตัวอย่างที่สองเปลี่ยนเส้นทางกระแสข้อมูลของคำสั่งไปยังตัวแปร $null และด้วยเหตุนี้จึงระงับมัน สำหรับข้อมูลเพิ่มเติม โปรดดู about_Output_Streams

พารามิเตอร์

-BackgroundColor

ระบุสีพื้นหลัง ไม่มีค่าเริ่มต้น ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

    Black
    DarkBlue
    DarkGreen
    DarkCyan
    DarkRed
    DarkMagenta
    DarkYellow
    Gray
    DarkGray
    Blue
    Green
    Cyan
    Red
    Magenta
    Yellow
    White
พิมพ์ :

ConsoleColor

ค่าที่ยอมรับ:

ดำ, น้ำเงินเข้ม, เขียวเข้ม, ฟ้าเข้ม, แดงเข้ม, ม่วงแดงเข้ม, เหลืองเข้ม, เทา, เทาเข้ม, น้ำเงิน, เขียว, น้ำเงินเขียว, แดง, ม่วงแดง, เหลือง, ขาว

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-ForegroundColor

ระบุสีข้อความ ไม่มีค่าเริ่มต้น ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

    Black
    DarkBlue
    DarkGreen
    DarkCyan
    DarkRed
    DarkMagenta
    DarkYellow
    Gray
    DarkGray
    Blue
    Green
    Cyan
    Red
    Magenta
    Yellow
    White
พิมพ์ :

ConsoleColor

ค่าที่ยอมรับ:

ดำ, น้ำเงินเข้ม, เขียวเข้ม, น้ำเงินเข้ม, แดงเข้ม, ม่วงแดงเข้ม, เหลืองเข้ม, เทา, เทาเข้ม, น้ำเงิน, เขียว, น้ำเงินเขียว, แดง, ม่วงแดง, เหลือง, ขาว

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-NoNewline

การแสดงสตริงของออบเจ็กต์อินพุตจะถูกต่อเข้าด้วยกันเพื่อสร้างเอาต์พุต ไม่มีการเว้นวรรคหรือขึ้นบรรทัดใหม่ระหว่างสตริงเอาต์พุต ไม่มีการขึ้นบรรทัดใหม่หลังจากสตริงเอาต์พุตสุดท้าย

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Object

วัตถุที่จะแสดงในโฮสต์

พิมพ์ :

วัตถุ

นามแฝง :

Msg, Message

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-Separator

ระบุสตริงตัวคั่นเพื่อแทรกระหว่างอ็อบเจ็กต์ที่แสดงโดยโฮสต์

พิมพ์ :

วัตถุ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

อินพุต

วัตถุ

คุณสามารถไปป์วัตถุที่จะเขียนไปยังโฮสต์ไปยัง cmdlet นี้

เอาท์พุต

ไม่มี

cmdlet นี้ส่งคืนไม่มีผลลัพธ์ มันส่งวัตถุไปยังโฮสต์ โฮสต์แสดงวัตถุที่ cmdlet นี้ส่งไป

หมายเหตุ

  • เมื่อเขียนคอลเลกชันไปยังโฮสต์ องค์ประกอบของคอลเลกชันจะถูกพิมพ์ในบรรทัดเดียวกันโดยคั่นด้วยช่องว่างเดียว ซึ่งสามารถแทนที่ได้ด้วยพารามิเตอร์ ตัวคั่น

  • ชนิดข้อมูลที่ไม่ใช่ข้อมูลพื้นฐาน เช่น ออบเจ็กต์ที่มีคุณสมบัติอาจทำให้เกิดผลลัพธ์ที่ไม่คาดคิดและไม่ได้ให้ผลลัพธ์ที่มีความหมาย ตัวอย่างเช่น Write-Host @{a=1; b=2} จะพิมพ์ System.Collections.DictionaryEntry System.Collections.DictionaryEntry ไปยังโฮสต์

บทความที่เกี่ยวข้อง