Powershell Select-строка

#powershell #select-string

#powershell #select-string

Вопрос:

Мне нужна ваша помощь с PowerShell.

Мне нужна строка выбора с фиксированной датой (в переменной). и установить содержимое в result.txt Пример: $Date = "01.07.2020"

Но также мне нужна строка выбора с датой, которая ниже, чем я написал в переменной.

Мой код: Get-Content -Path log.txt | Select-String "?????" | Set-Content $result.txt

  • В log.txt у меня есть много строк типа » Дата создания 01.07.2020 » ; » Дата создания 01.06.2020 «.

Комментарии:

1. Упорядочены ли строки в файле журнала? И это dd.MM.yyyy или MM.dd.yyyy ?

2. Мой скрипт досрочно преобразовал дату из ММ.дд.гггг в дд.ММ.гггг (перед выбором данных) Мне нужны только данные выбора.)

3. Я имел в виду в исходном файле, log.txt

4. в исходном файле — дд.ММ.гггг

5. строки с датой смешиваются следующим образом: строка 1: дата создания 01.07.2020 строка 2: Дата создания 02.05.2020 строка 3: дата создания 28.08.2020 и т.д.

Ответ №1:

123.txt

 Creation date 01.07.2020
Creation date 02.05.2020
Creation date 01.06.2020
Creation date 28.08.2020
  

Пример сценария

 $file = "C:UsersuserprofileDesktoptest123.txt"
$regexpattern = "d{2}.d{2}.d{4}"
$content = Get-Content $file | Where-object { $_ -match $regexpattern}

foreach($line in $content){

    $line.Substring(13,11)

}
  

Я использовал регулярное выражение, чтобы найти строки, которые вы хотите вывести. Мы получаем содержимое, только если оно соответствует нашему регулярному выражению, затем для каждой найденной строки я использую substring для извлечения даты. Вы также можете создать для этого регулярное выражение, если хотите. Поскольку мы знаем, что строки содержат одинаковое количество символов, безопасно использовать функцию substring .

Если вам нужен этот вывод в файл, просто найдите $line.Substring(13,11) и добавьте это после него | Out-file "C:Usersuserprofiledesktoptestoutput.txt" -append .