使用 PowerShell 管道

在大多數情況下,管道的輸入將是一個物件陣列。雖然 PROCESS{} 塊的行為可能看起來類似於 foreach{} 塊,但跳過陣列中的元素需要不同的過程。

如果像 foreach{} 一樣,你在 PROCESS{} 塊中使用了 continue,它會破壞管道,跳過包括 END{} 塊在內的所有後續語句。相反,使用 return - 它只會結束當前元素的 PROCESS{} 塊並移動到下一個。

在某些情況下,需要輸出具有不同編碼的函式的結果。CmdLets 輸出的編碼由 $OutputEncoding 變數控制。當輸出打算放入到本機應用程式的管道中時,修復編碼以匹配目標 $OutputEncoding = [Console]::OutputEncoding 可能是個好主意。

其他參考:

關於 $OutputEncoding 的更多見解的部落格文章 https://blogs.msdn.microsoft.com/powershell/2006/12/11/outputencoding-to-the-rescue/