当前位置:  开发笔记 > 编程语言 > 正文

是否可以从过滤器中终止或停止PowerShell管道

如何解决《是否可以从过滤器中终止或停止PowerShell管道》经验,为你挑选了1个好方法。

我编写了一个简单的PowerShell过滤器,如果它的日期在指定的开始日期和结束日期之间,则将当前对象推送到管道中.管道下方的对象始终按升序排列,因此一旦日期超过指定的结束日期,我就知道我的工作已完成,我想告诉管道上游命令可以放弃他们的工作以便管道可以完成它的工作.我正在阅读一些非常大的日志文件,我经常想要检查一部分日志.我很确定这是不可能的,但我想问一下.



1> 小智..:

有可能破坏管道,否则会破坏外部循环或完全停止脚本执行(比如抛出异常).然后解决方案是将管道包装在一个循环中,如果需要停止管道,可以中断该循环.例如,下面的代码将返回管道中的第一个项目,然后通过打破外部do-while循环来中断管道:

do {
    Get-ChildItem|% { $_;break }
} while ($false)

这个功能可以包装成这样的函数,其中最后一行完成与上面相同的操作:

function Breakable-Pipeline([ScriptBlock]$ScriptBlock) {
    do {
        . $ScriptBlock
    } while ($false)
}

Breakable-Pipeline { Get-ChildItem|% { $_;break } }

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有