使用powershell“switch -regex -file”,如何在默认块上获取“不匹配”字符串?

Posted

技术标签:

【中文标题】使用powershell“switch -regex -file”,如何在默认块上获取“不匹配”字符串?【英文标题】:Using powershell “switch -regex -file”, how get 'not matched' string on default block? 【发布时间】:2015-06-22 13:58:35 【问题描述】:

我正在使用一个函数来解析一个 ini 文件。我正在使用 switch -regex -file 代码来获得具有不同 RegEx 表达式的匹配行。但是现在,我想捕捉与任何正则表达式都不匹配的行..

此时,我可以用默认块捕获它们,但我不知道如何显示行内容,因为 $matches[1] 为空(注释行:#$line=$matches[1]

¿如何在默认块上获得匹配行?

注意: 一个可能的解决方案是通过匹配任何行“^(.*)$”的块来更改默认块,但我很好奇它们是否有任何方法来获得“不匹配” ' 默认块上的字符串

谢谢

函数 CheckIniFile ($filePath) 开关 -regex -file $FilePath "^\[(.+)\]$" # 节 $section = $matches[1] 写主机“节:$节” 继续 默认 # 下一行导致 NullArray 错误 $line=$matches[1] 写主机“没有部分:$line” 继续

【问题讨论】:

【参考方案1】:

使用自动变量$_switch循环中的当前对象:

    switch -regex -file $FilePath 
    
        ...

        default
        
            Write-Host "No section: $_"
            continue
        
     

【讨论】:

非常感谢!我从 powershell 开始,有时很难:)

以上是关于使用powershell“switch -regex -file”,如何在默认块上获取“不匹配”字符串?的主要内容,如果未能解决你的问题,请参考以下文章

windows powershell 怎么使用啊,是干啥用的

powershell 使用powershell #powershell从zip文件中删除文件

powershell Powershell用于将Powershell与SharePoint 2007一起使用

powershell 使用XPath使用PowerShell更新XML

PowerShell 添加任务以使用参数运行 PowerShell 脚本

PowerShell使用教程