Создайте код, который читает содержимое файла до определенной строки в содержимом, используя условные операторы - PullRequest
0 голосов
/ 20 мая 2019

У меня есть этот фрагмент кода, который читает содержимое файла до определенной строки, а затем копирует содержимое текстового файла в другой файл

Я попытался сторнировать содержимое с помощью массива, метода split, но яне получается желаемый результат.

$x = Get-Content -Path "C:\Users\Desktop\abc*.txt"
[array]::Reverse($x)

$d = foreach($line in $x)
{
    if($line - like "HEllo")

    {
        #Read the text file till "hello" and copy the contents
    }
}

1 Ответ

0 голосов
/ 20 мая 2019

Вам не нужно инвертировать массив с содержимым или использовать циклы.

Вот простое решение:

$x = Get-Content -Path "C:\Users\Desktop\abc*.txt" -Raw;

$pos = $x.IndexOf("Hello"); #position of the substring

$result = $x.Substring(0, $pos); #cuting the left part (before the substring)

$result | Out-File "C:\Users\Desktop\abc_out.txt"; #Output the result to file

Пояснение:

  1. Получить содержимое вашего файла в виде raw строки.

  2. Найти положение подстроки "Hello"

  3. Вырезать деталь перед подстрокой

  4. Вывести результат в файл

...