我使用PowerShell将数据插入到数据库中,但在进入该步骤之前,我需要从日志文件中提取信息。如何从日志文件中的这一行提取项目的标题?
1>Project "E:\Builds\1\IS_WSD\Lab1\src\Lab1.sln" on node 1 (default targets).
标题是" Lab1.sln"
我已经拥有了(Get-Content C:\Users\myusername\Documents\Lab1.log)[1]
这一整行,但我需要进一步缩小范围。
答案 0 :(得分:3)
正则表达式如何:
$x = '1>Project "E:\Builds\1\IS_WSD\Lab1\src\Lab1.sln" on node 1 (default targets).'
$x -match '".*\\(.*)"'
$Matches[1]
或非正则表达方式:
$x.SubString($x.LastIndexOf('\')+1, ($x.LastIndexOf('"')-$x.LastIndexOf('\'))-1)
答案 1 :(得分:0)
这样做:
$logfile = 'C:\Users\myusername\Documents\Lab1.log'
(Get-Content $logfile)[1] -replace '^.*?".*?\\([^\\]+)".*', '$1'
或者这个:
$logfile = 'C:\Users\myusername\Documents\Lab1.log'
(Get-Content $logfile)[1] -replace '^.*?"' -replace '".*$' -replace '^.*\\'