有时你可能想在管道运行在某个特定的条件下,终止管道。今天来演示一个比较新颖的方式,它适用于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)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“PowerShell实现按条件终止管道的方法”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
20240727
20240727
- 《刀郎13CD合集》[WAV+CUE][8.4G]
- 群星.2024-天行健影视剧原声带【企鹅影视】【FLAC分轨】
- 郑源2008-源·情歌[首版][WAV+CUE]
- 郭峰1999-甘心情愿[首版][WAV+CUE]
- 关智斌.2006-寻找美惠【英皇娱乐】【FLAC分轨】
- 谢安琪.2007-THEFIRSTDAY(新歌+重绎)【新艺宝】【WAV+CUE】
- 群星.1992-1994-宝丽金绝佳经典2辑【宝丽金】【WAV+CUE】
- 雷婷-《我的爱回不来(紫银合金AQCD)》[WAV+CUE]
- 群星《妙音20周年辉煌经典纪念版》蓝光BSCD[正版原抓WAV+CUE]
- 【雨果唱片】音乐图书馆系列《绣金匾》1999【WAV整轨+CUE】
- 曜爆甘弦乐团《忆声弦命 滚石40【40首OST 致经典】》[320K/MP3][94.1MB]
- 曜爆甘弦乐团《忆声弦命 滚石40【40首OST 致经典】》[FLAC/分轨][208.1MB]
- 丁当《日与夜,跟自己说晚安》[320K/MP3][98.51MB]
- 何炅.2005-漫游【中唱】【WAV+CUE】
- 何嘉莉.1998-MYDREAMS(EP)【飞图】【WAV+CUE】