Как получить содержимое файла массива с помощью PowerShell? - PullRequest
0 голосов
/ 04 ноября 2019

Я новичок в PowerShell, хочу прочитать текстовый файл. Но у моего формата текстового файла есть голова. Этот формат выглядит как

Name
(One Tab) Jhonny/Male
(One Enter)
(One Tab)  Merry/Female

Class
(One Tab)  XI/AB
(One Enter)
(One Tab)  XII/AB

Я хочу прочитать содержимое каждой главы, например, Имя или Класс. Если я прочитаю имя, оно вернется

Jhonny/Male
Merry/Female

Кто-нибудь может дать мне идею, пожалуйста? Большое спасибо

Это то, что я пытаюсь. Но это не работает

$File = Get-Content -Path .\Data.txt
$Name = $File.Name
Write-Output $Name

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Вы можете использовать следующее, если предположить, что текст под заголовками имеет отступ с пробелом:

$name = $false
switch -regex -file Data.txt {
    '^Name' { $name = $true; continue }
    '^\s' { if ($name) { $_.Trim() }}
    '^\S' { if ($name) { return }}
}
0 голосов
/ 04 ноября 2019

Я думаю, что это может помочь. Если вы хотите заменить вкладку во время печати, вы можете сделать это с помощью команды замены также в powershell.

$content=Get-Content -Path "E:\test.txt"
$contentHead="Name"
for($i=0 ; $i -lt $content.Count ; $i++){
    if($content[$i] -eq $contentHead){
        for($i=$i+1; $i -lt $content.Count; $i++){
            Write-Output $content[$i]
            if($content[$i][0] -ne "`t"){
                break
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...