ใน PowerShell คุณสามารถเปลี่ยนชื่อของตัวแปรที่ใช้เป็นรายการในบล็อกวนซ้ำเช่น:
dir -recurse *.snippet -OutVariable snippets
$snippets | Where-Object -PipelineVariable fn { $fn.Length -ge 6000 } | select FullName
รหัสนั้นใช้ไม่ได้ แต่คุณได้รับแนวคิด ฉันคิดว่ามันไม่ทำงานเพราะ-PipelineVariable
จะต้องระบุอาร์กิวเมนต์ใน CmdLet ก่อนหน้า
คำถามของฉันคือ CmdLet ที่ฉันใช้เพื่อไพพ์เนื้อหาของ$snippets
?
นั่นคือเมื่อฉันรัน$snippets
มันโดยปริยายเพียงแค่กระจายเนื้อหาออกไปป์ไลน์ แต่ CmdLet ทำอะไรได้บ้าง
ฉันได้ลองมาหลายครั้งแล้วและดูเหมือนว่าจะส่งออกอาร์เรย์บนหน้าจอ แต่เมื่อส่งเข้าไปในWhere-Object
ส่วนคำสั่งที่ใช้งานไม่ได้มันก็เหมือนกับการดูที่อินสแตนซ์วัตถุอาร์เรย์ด้านนอกไม่ใช่แต่ละรายการ
ลุค
Write-Output
"ส่งวัตถุที่ระบุไปยังคำสั่งถัดไปในไปป์ไลน์" - ง่ายเมื่อคุณรู้Out-Default
ที่ใกล้ที่สุดที่ผมได้รับคือ ขอบคุณและฉันขอให้คุณPipelineVariable
เข้าใจว่ามันเป็นแบบฝึกหัดการเรียนรู้มากกว่าความต้องการที่ถูกต้องตามกฎหมาย