2015-06-09 3 views
0

Как мне потянуть дату и время из этой строки файла журнала? Оригинал:Как просто вытащить дату и время из этой строки?

Build started 6/4/2015 11:25:47 AM. 

Этот код получает меня большую часть пути:

$x = (Get-Content C:\Users\myusername\Documents\SQLScripts\TestLogs\Lab1.log)[0] 
"'" + $x.SubString($x.IndexOf(' ')+1, ($x.LastIndexOf(' ')-$x.IndexOf(' '))-1) + "'" 

Но мой выход по-прежнему включает в себя «начал»

'started 6/4/2015 11:25:47' 

Кажется, я не знаю, как для правильной работы с командой IndexOf.

+0

Если ваш 'Построить started' статической строки, поместите его через' -replace «Строить начал», «» ', в противном случае вы будете необходимо разделить строку на пробелы и взять 3 последних значения из результирующего массива. – Vesper

ответ

1

Я рекомендую использовать -match, вы можете начать с:

type "log.txt" ` 
    | where { $_ -match "([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+:[0-9]+ (AM|PM))" } ` 
    | foreach { $matches[0] } 
+0

Есть ли способ изменить тип на переменную, ссылающуюся на путь файла, такой как $ FileLocation? Я не хочу менять это в более чем одном месте в моей программе. –

+0

замените 'log.txt' на' $ file = "log.txt" 'и' type $ file ... '. –

+0

Я хочу, чтобы 'type = $ file =" log.txt "' все в одной строке? –

Смежные вопросы