假设Get-ChildItem返回数百万个项目。 PowerShell如何处理这个问题?我可以批量处理数据吗?该命令是否会阻止控制台直到检索到数据?
我是PowerShell的新手,所以如果有人能够解释处理返回许多项目的操作的基本原则/可能需要很长时间才能完成,那将会很棒。
答案 0 :(得分:6)
Powershell cmdlet一次处理一条记录数据。如果将get-childitem的输出传递给脚本块或另一个cmdlet,则它应该并行执行。也就是说,一旦记录可用,您的脚本块将立即执行,而get-childitem仍在检索记录。当然,由于它是一个控制台应用程序,控制台自然会被阻止,直到处理完所有记录,除非您在处理记录期间提示用户提供更多数据,或者用户终止命令。如果您需要进行时间/资源密集型处理,则可能需要考虑让cmdlet使用后台作业(请参阅this msdn article)。