使用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