ฉันจะได้รับทรัพย์สินของวัตถุใน PowerShell โดยไม่ต้องใช้วงเล็บได้อย่างไร


13

ฉันมักจะพบว่าฉันต้องล้อมรอบคำสั่งในวงเล็บแล้วใช้ตัวดำเนินการเข้าถึงคุณสมบัติ (dot-syntax) เพื่อรับค่าของคุณสมบัติ มันค่อนข้างน่ารำคาญเพราะฉันต้องกลับไปที่จุดเริ่มต้นของบรรทัดเมื่อฉันอยากพิมพ์ต่อไปเรื่อย ๆ ว่าฉันอยู่ที่ไหน มันน่ารำคาญเป็นพิเศษเมื่อฉันอยู่ในชุดคำสั่ง piped ขนาดใหญ่

ตัวอย่าง

หากฉันมีคำสั่งดังต่อไปนี้

Get-PSProvider FileSystem

และฉันต้องการได้Drivesทรัพย์สินฉันจะต้องล้อมรอบคำสั่งทั้งหมดในวงเล็บก่อน:

(Get-PSProvider FileSystem).Drives

มีวิธีที่เร็วกว่าในการรับค่าของคุณสมบัติเดียวหรือไม่

คำตอบ:


14

Select-Object -ExpandProperty <property name>คุณสามารถใช้ สิ่งนี้สามารถทำให้สั้นลงได้โดยใช้นามแฝงselectและพิมพ์เพียงบางส่วนของชื่อคุณสมบัติ:

Get-PSProvider FileSystem| select -exp Drives

ประโยชน์เพิ่มเติมสำหรับวิธีนี้คือคุณสามารถเข้าถึงคุณสมบัติเดียวสำหรับหลาย ๆ วัตถุ

สิ่งนี้จะไม่ส่งคืนสิ่งใด ( อัปเดต:ใช้งานได้ใน PowerShell v3):

(Get-PSProvider).Drives

อย่างไรก็ตามสิ่งนี้จะส่งคืนไดรฟ์สำหรับผู้ให้บริการทั้งหมด:

Get-PSProvider| select -exp Drives

น่าสนใจมาก. ขอบคุณสำหรับการแก้ไข
soandos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.