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
ระบุสีพื้นหลัง ไม่มีค่าเริ่มต้น ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:
BlackDarkBlueDarkGreenDarkCyanDarkRedDarkMagentaDarkYellowGrayDarkGrayBlueGreenCyanRedMagentaYellowWhite- พิมพ์ :
ConsoleColor
- ค่าที่ยอมรับ:
ดำ, น้ำเงินเข้ม, เขียวเข้ม, ฟ้าเข้ม, แดงเข้ม, ม่วงแดงเข้ม, เหลืองเข้ม, เทา, เทาเข้ม, น้ำเงิน, เขียว, น้ำเงินเขียว, แดง, ม่วงแดง, เหลือง, ขาว
- ตำแหน่ง:
-
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-ForegroundColor
ระบุสีข้อความ ไม่มีค่าเริ่มต้น ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:
BlackDarkBlueDarkGreenDarkCyanDarkRedDarkMagentaDarkYellowGrayDarkGrayBlueGreenCyanRedMagentaYellowWhite- พิมพ์ :
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ไปยังโฮสต์