如何选择多行字符串(包括空格),如果找到则返回true - PowerShell / SQL Batch

时间:2015-06-12 10:37:01

标签: sql-server powershell batch-file powershell-v2.0 powershell-v3.0

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

需要选择的.log文件中的输出:

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

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

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

我试过这个,但这相当于过滤器中的OR而不是

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

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

1 个答案:

答案 0 :(得分:0)

您可以将正则表达式与多行选项一起使用:

$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

如果您发布了日志的扩展,我可以根据您的需要调整脚本。