PowerShell实现按条件终止管道的方法

首页 > 脚本专栏 > PowerShell 更新日期: 2015-06-17
这篇文章主要介绍了PowerShell实现按条件终止管道的方法,有时你可能想在管道运行在某个特定的条件下,终止管道的运行,本文就讲解了这样一种方法,需要的朋友可以参考下

有时你可能想在管道运行在某个特定的条件下,终止管道。今天来演示一个比较新颖的方式,它适用于PowerShell 2.0或着更高版本。先看代码:

filter Stop-Pipeline
{
param
(
[scriptblock]
$condition = {$true}
)
 
if (& $condition)
{
continue
}
$_
}
 
do {
Get-ChildItem c:\Windows -Recurse -ErrorAction SilentlyContinue |
Stop-Pipeline { ($_.FullName.ToCharArray() -eq '\').Count -gt 3 }
} while ($false)

管道会递归的扫描windows目录,新引入的命令stop-pipeline,它可以接受一个布尔条件参数,一旦条件成立,管道就会终止。

这个例子可以控制递归的深度,一旦检测到路径中包含了三个反斜杠,管道就会终止,当然你可以调节3到更大的整数,以增加扫描的文件夹深度。

这个诀窍需要管道必须嵌入在一个do 循环中,因为Stop-Pipeline在条件满足时,是通过continue语句来终止管道的。

听起来略微笨拙,但是效果杠杠的。再来看另一个用法,让管道最多运行10秒钟:

$start = Get-Date
$MaxSeconds = 10
 
do {
Get-ChildItem c:\Windows -Recurse -ErrorAction SilentlyContinue |
Stop-Pipeline { ((Get-Date) - $start).TotalSeconds -gt $MaxSeconds }
} while ($false)

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • PowerShell中终止管道的方法
    这篇文章主要介绍了PowerShell中终止管道的方法,本文直接给出代码实例,需要的朋友可以参考下如果你能够提前知道你想从管道中获取元素的个数,可以使用Select-Object来终止流处理命令的的管道,这会节省很多时间. 下面的例子会从Windows文件夹下搜寻 explorer.exe示例,因为Select-Object语句可以在管道找到结果的那一瞬终止 ...
  • PowerShell查找分区中最大文件的方法查找文件并按大小排序
    这篇文章主要介绍了PowerShell查找分区中最大文件的方法,查找文件并按占用空间排序,并用命令参数只输出比如10条,这样就可以快速找出一个目录.一个分区下的N个最大的文件,需要的朋友可以参考下本文介绍一个PowerShell命令,用于将某个目录或磁盘(如D盘)下占用空间最大的前几个文件.这个任务在其它编程语言中,可能要大段大段的代码,而在PowerShe ...
  • PowerShell在控制台输出特殊符号的方法
    PowerShell在控制台输出特殊符号的方法
    这篇文章主要介绍了PowerShell在控制台输出特殊符号的方法,本文给出了实现代码和输出图例,本文代码输出了一个绿色三角形,需要的朋友可以参考下您知道吗,PowerShell控制台也可以输出特殊的图标?而你需要做的只是,设置控制台的字体为TrueType 字体,比如"Consolas". 要显示特殊字符,请使用十进制或十六进制字符代码, ...
  • PowerShell设置文件只读、隐藏属性的方法
    这篇文章主要介绍了PowerShell设置文件只读.隐藏属性的方法,包括系统.存档和无内容索引属性都有介绍,需要的朋友可以参考下本文介绍一个PowerShell中如何设置文件属性.我们知道文件的属性有只读.隐藏.系统.存档和无内容索引等5个,只读和隐藏用得比较多,另外三个用得比较少. 一.文件的属性 不知道大家有没有用过attrib.exe这个cmd下的小程 ...
  • JSP中使用JSTL按不同条件输出内容的方法
    这篇文章主要介绍了JSP中使用JSTL按不同条件输出内容的方法,实例分析了JSP标签库JSTL的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了JSP中使用JSTL按不同条件输出内容的方法.分享给大家供大家参考.具体如下: ConditionalContentJSTL.jsp页面: <%@ page language=" ...
猜你喜欢