使用 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/