如何select 多行字符串(包括空格),return true if found - PowerShell/SQL Batch

How to select multi-line strings (including spaces), return true if found - PowerShell/SQL Batch

我已经使用 select-string 来验证在一行中找到的字符串,但是我需要 PowerShell 来识别多行字符串,并满足所有三个条件(见下文)

.log 文件中需要 selected 的输出:

Return Value
------------
           0

我想要一些东西来验证以下字符串值(所有三个都满足 return true)

"Return Value", "------------", "           0"

我已经试过了,但这相当于过滤器中的 OR not AND

| Select-String -pattern "Return Value", "------------", "           0"

来源:http://ss64.com/ps/select-string.html : http://www.sqlservercentral.com/Forums/Topic1253397-1351-1.aspx

您可以将 regex 与多行选项一起使用:

$a = 
@'
Return Value
------------
0
'@

$b = 
@'
Return Value
------------
1
'@

[regex]::Match($a, 'Return Value\s*------------\s*0', [System.Text.RegularExpressions.RegexOptions]::Multiline).Success # true
[regex]::Match($b, 'Return Value\s*------------\s*0', [System.Text.RegularExpressions.RegexOptions]::Multiline).Success # false

如果您post一个日志示例,我可以根据您的需要调整脚本。