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-CommandGet-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