假设Get-ChildItem返回了数百万个项目,PowerShell如何处理?我能分批处理数据吗?命令会阻塞控制台直到数据被检索出来吗?
我是PowerShell的新手,如果有人能解释一下处理返回许多项目/可能需要很长时间才能完成的操作的基本原则,那就太好了。
假设Get-ChildItem返回了数百万个项目,PowerShell如何处理?我能分批处理数据吗?命令会阻塞控制台直到数据被检索出来吗?
我是PowerShell的新手,如果有人能解释一下处理返回许多项目/可能需要很长时间才能完成的操作的基本原则,那就太好了。
Powershell命令每次处理一条记录的数据。如果你将get-childitem的输出通过管道传递到脚本块或另一个命令中,它应该会同时执行两个命令。也就是说,只要有可用的记录,你的脚本块就会立即执行,而get-childitem仍在检索记录。当然,由于这是一个控制台应用程序,控制台自然会被阻塞,直到所有记录都被处理完毕,除非你在处理记录过程中提示用户输入更多数据,或者用户终止命令。如果你需要进行耗时/资源密集型的处理,你可能需要考虑让你的命令使用后台作业(参见此msdn文章)。