Trong PowerShell, bạn có thể thay đổi tên của biến được sử dụng làm mục trong một khối lặp, chẳng hạn như:
dir -recurse *.snippet -OutVariable snippets
$snippets | Where-Object -PipelineVariable fn { $fn.Length -ge 6000 } | select FullName
Mã đó không hoạt động, nhưng bạn có ý tưởng. Tôi nghĩ rằng nó không hoạt động bởi vì -PipelineVariable
đối số phải được chỉ định trong CmdLet trước đó.
Câu hỏi của tôi là, tôi sử dụng CmdLet nào để dẫn nội dung của $snippets
?
tức là khi tôi vừa chạy $snippets
Nó hoàn toàn chỉ đưa nội dung ra ngoài đường ống, nhưng CmdLet làm gì đây?
Tôi đã thử nhiều và dường như nhiều đầu ra mảng trên màn hình, nhưng khi được đưa vào Where-Object
mệnh đề where không hoạt động, nó giống như nó nhìn vào thể hiện đối tượng mảng bên ngoài chứ không phải từng mục.
Luke
Write-Output
"Gửi các đối tượng được chỉ định đến lệnh tiếp theo trong đường ống" - dễ dàng khi bạn biết. Gần nhất tôi có làOut-Default
. Cảm ơn và tôi nêu quan điểm của bạn vềPipelineVariable
nó là một bài tập học tập hơn bất kỳ nhu cầu chính đáng nào.