2015-06-08 2 views
0

Я использую 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

ли это:

$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 '^.*\\' 
+0

Я на самом деле ищу последнюю часть пути с Lab1.sln –

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) 
Смежные вопросы