Как использовать регулярное выражение начало строки с Select-String? - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть следующий код,

Write-Output "$(Get-Content $alerfile | Select-String $(Get-Date (Get-Date).AddDays(-1) -Format $filtdate) -Context 0,1000000)"

Мне нужно вернуть только строку в начале строки, я попытался:

Write-Output "$(Get-Content $alerfile | Select-String ^$(Get-Date (Get-Date).AddDays(-1) -Format $filtdate) -Context 0,1000000)"

, но это не работает.

1 Ответ

5 голосов
/ 29 сентября 2019

Как прокомментировал Lee_Dailey , вам необходимо удалить Write-Output.Кроме того, вы переусердствуете с датой в шаблоне.

Далее, командлет Select-String также имеет параметр -Path, поэтому вам не нужно Get-Content для этого.

Я предлагаю что-то вроде этого:

# insert the datetime format you need here; this is just an example
$filtdate = 'yyyyMMdd HH:mm:ss'
# get yesterdays date formatted using the $filtdate template above
$refdate  = (Get-Date).AddDays(-1).ToString($filtdate)
# find the string beginning with that formatted date and return the results
Select-String -Path $alerfile -Pattern "^$refdate" -Context 0,1000000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...