首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略ForEach-Object循环中的错误

忽略ForEach-Object循环中的错误
EN

Stack Overflow用户
提问于 2017-05-23 18:41:30
回答 1查看 3.9K关注 0票数 1

我有一个完整的文本文件,在文本文档的每一行中,电视节目的名称末尾都有一个ID。我想忽略任何空行或忽略任何错误

代码语言:javascript
复制
Get-Content -Path "C:\test\text.txt" | ForEach-Object  {
    $_.Substring($_.Length - 5) -ErrorAction 'SilentlyContinue'
}

我试图抑制任何类似的错误,但这并没有解决问题。如何在foreach循环中跳过空行或禁止显示错误消息?

EN

回答 1

Stack Overflow用户

发布于 2017-05-23 18:51:54

您可以在编写代码之前全局更改error操作变量,然后将其设置回以前的值:

代码语言:javascript
复制
$PrevErrorActionPreference = $ErrorActionPreference
$ErrorActionPreference = 'silentlycontinue'

Get-Content -Path  "C:\test\text.txt" | ForEach-Object  {
    $_.Substring($_.Length - 5)
}

$ErrorActionPreference = $PrevErrorActionPreference

或者,在使用SubString之前,只需使用If语句测试字符串的长度

代码语言:javascript
复制
Get-Content -Path "*.txt" | ForEach-Object  {
    If ($_.Length -ge 5) { $_.Substring($_.Length - 5) }
}

第三种选择是使用Try..Catch块:

代码语言:javascript
复制
Get-Content -Path "*.txt" | ForEach-Object  {
    Try {
        $_.Substring($_.Length - 5)
    } Catch {
        # Do nothing
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44132521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档