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

Out-String (Microsoft.PowerShell.Utility)


Out-String

โมดูล :
Microsoft.PowerShell.Utility

ส่งออกวัตถุอินพุตเป็นสตริง

ไวยากรณ์

Out-String
   [-Width <Int32>]
   [-NoNewline]
   [-InputObject <PSObject>]
   [<CommonParameters>]
Out-String
   [-Stream]
   [-Width <Int32>]
   [-InputObject <PSObject>]
   [<CommonParameters>]

คำอธิบาย

Out-String cmdlet แปลงวัตถุอินพุตเป็นสตริง ตามค่าเริ่มต้น Out-String จะสะสมสตริงและส่งกลับเป็นสตริงเดียว แต่คุณสามารถใช้พารามิเตอร์ Stream เพื่อกำหนดทิศทาง Out-String เพื่อส่งคืนทีละบรรทัดหรือสร้างอาร์เรย์ของสตริง cmdlet นี้ช่วยให้คุณค้นหาและจัดการเอาต์พุตสตริงได้เหมือนกับที่คุณทำในเชลล์แบบดั้งเดิม เมื่อการจัดการวัตถุไม่สะดวก

PowerShell ยังเพิ่มฟังก์ชัน OSS ที่เรียก Out-String -Stream เป็นวิธีชวเลขในการใช้ Out-String ในไปป์ไลน์

ตัวอย่าง

ตัวอย่างที่ 1: รับวัฒนธรรมปัจจุบันและแปลงข้อมูลเป็นสตริง

ตัวอย่างนี้รับการตั้งค่าภูมิภาคสำหรับผู้ใช้ปัจจุบันและแปลงข้อมูลออบเจ็กต์เป็นสตริง

$C = Get-Culture | Select-Object -Property *
Out-String -InputObject $C -Width 100

Parent                         : en
LCID                           : 1033
KeyboardLayoutId               : 1033
Name                           : en-US
IetfLanguageTag                : en-US
DisplayName                    : English (United States)
NativeName                     : English (United States)
EnglishName                    : English (United States)
TwoLetterISOLanguageName       : en
ThreeLetterISOLanguageName     : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo                    : CompareInfo - en-US
TextInfo                       : TextInfo - en-US
IsNeutralCulture               : False
CultureTypes                   : SpecificCultures, InstalledWin32Cultures, FrameworkCultures
NumberFormat                   : System.Globalization.NumberFormatInfo
DateTimeFormat                 : System.Globalization.DateTimeFormatInfo
Calendar                       : System.Globalization.GregorianCalendar
OptionalCalendars              : {System.Globalization.GregorianCalendar,
                                 System.Globalization.GregorianCalendar}
UseUserOverride                : True
IsReadOnly                     : False

ตัวแปร $C เก็บอ็อบเจ็กต์ Selected.System.Globalization.CultureInfo ออบเจ็กต์นี้เป็นผลมาจาก Get-Culture ที่ส่งออกไปป์ไลน์ไปยัง Select-Object พารามิเตอร์ คุณสมบัติ ใช้เครื่องหมายดอกจัน (*) เพื่อระบุว่าคุณสมบัติทั้งหมดมีอยู่ในออบเจ็กต์

Out-String ใช้พารามิเตอร์ InputObject เพื่อระบุออบเจ็กต์ CultureInfo ที่จัดเก็บไว้ในตัวแปร $C วัตถุใน $C จะถูกแปลงเป็นสตริง

บันทึก

หากต้องการดูอาร์เรย์ Out-String ให้จัดเก็บเอาต์พุตไว้ในตัวแปรและใช้ดัชนีอาร์เรย์เพื่อดูองค์ประกอบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับดัชนีอาร์เรย์ โปรดดูที่ about_Arrays

$str = Out-String -InputObject $C -Width 100

ตัวอย่างที่ 2: การทำงานกับวัตถุ

ตัวอย่างนี้แสดงให้เห็นถึงความแตกต่างระหว่างการทำงานกับวัตถุและการทำงานกับสตริง คำสั่งแสดงนามแฝงที่มีข้อความ gcm ซึ่งเป็นนามแฝงสำหรับ Get-Command

Get-Alias | Out-String -Stream | Select-String -Pattern "gcm"

Alias           gcm -> Get-Command

Get-Alias รับอ็อบเจ็กต์ System.Management.Automation.AliasInfo หนึ่งรายการสำหรับแต่ละนามแฝง และส่งอ็อบเจ็กต์ลงไปป์ไลน์ Out-String ใช้พารามิเตอร์ Stream เพื่อแปลงแต่ละออบเจ็กต์เป็นสตริง แทนที่จะเชื่อมออบเจ็กต์ทั้งหมดให้เป็นสตริงเดียว ออบเจ็กต์ System.String จะถูกส่งไปตามไปป์ไลน์และ Select-String ใช้พารามิเตอร์ รูปแบบ เพื่อค้นหารายการที่ตรงกันสำหรับข้อความ gcm< /แข็งแกร่ง>.

บันทึก

หากคุณละเว้นพารามิเตอร์ Stream คำสั่งจะแสดงนามแฝงทั้งหมดเนื่องจาก Select-String ค้นหาข้อความ gcm ในสตริงเดี่ยวที่ Out-String ส่งคืน

ตัวอย่างที่ 3: ใช้พารามิเตอร์ความกว้างเพื่อป้องกันการตัดทอน

แม้ว่าเอาต์พุตส่วนใหญ่จาก Out-String จะถูกรวมไว้ในบรรทัดถัดไป แต่ก็มีสถานการณ์ที่เอาต์พุตถูกตัดทอนโดยระบบการจัดรูปแบบก่อนที่จะถูกส่งไปยัง Out-String คุณสามารถหลีกเลี่ยงการตัดทอนได้โดยใช้พารามิเตอร์ ความกว้าง

PS> @{TestKey = ('x' * 200)} | Out-String
Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...

PS> @{TestKey = ('x' * 200)} | Out-String -Width 250

Name                           Value
----                           -----
TestKey                        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

พารามิเตอร์

-InputObject

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

พิมพ์ :

PSObject

ตำแหน่ง:

ตั้งชื่อ

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

None

ที่จำเป็น:

False

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

True

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

False

-NoNewline

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

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 6.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

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

False

ที่จำเป็น:

False

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

False

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

False

-Stream

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

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

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

False

ที่จำเป็น:

False

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

False

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

False

-Width

ระบุจำนวนอักขระในแต่ละบรรทัดของเอาต์พุต อักขระเพิ่มเติมใดๆ จะรวมอยู่ในบรรทัดถัดไปหรือถูกตัดให้สั้นลง ขึ้นอยู่กับ cmdlet ของตัวจัดรูปแบบที่ใช้ พารามิเตอร์ ความกว้าง ใช้กับวัตถุที่กำลังจัดรูปแบบเท่านั้น หากคุณละเว้นพารามิเตอร์นี้ ความกว้างจะถูกกำหนดโดยคุณสมบัติของโปรแกรมโฮสต์ ในหน้าต่างเทอร์มินัล (คอนโซล) ความกว้างของหน้าต่างปัจจุบันจะถูกใช้เป็นค่าเริ่มต้น หน้าต่างคอนโซล PowerShell มีค่าเริ่มต้นที่ความกว้าง 80 อักขระในการติดตั้ง

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

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

None

ที่จำเป็น:

False

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

False

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

False

อินพุต

PSObject

คุณสามารถไปป์วัตถุใด ๆ ไปที่ cmdlet นี้

เอาท์พุต

สตริง

cmdlet นี้ส่งกลับสตริงที่สร้างขึ้นจากวัตถุอินพุต

หมายเหตุ

cmdlets ที่ประกอบด้วยกริยา Out ไม่จัดรูปแบบวัตถุ cmdlet ของ Out ส่งวัตถุไปยังตัวจัดรูปแบบสำหรับปลายทางการแสดงผลที่ระบุ

PowerShell 7.2 เพิ่มความสามารถในการควบคุมวิธีเรนเดอร์ลำดับหลีก ANSI เอาต์พุตที่ตกแต่งโดย ANSI ที่ส่งผ่านไปยัง Out-String สามารถเปลี่ยนแปลงได้ตามการตั้งค่าของคุณสมบัติ $PSStyle.OutputRendering สำหรับข้อมูลเพิ่มเติม โปรดดู about_ANSI_Terminals

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