Я пытаюсь найти способ получить ключ с несколькими значениями для чтения из текстового файла. Я почти понял, но застрял на том, как сделать ключ со значениями массива. Я прочитал его из текстового файла в формате
Server1:
job1
job2
job3
Server2:
Job1
Server3:
Job1
Job2
Мне удалось разделить строки, но я не могу понять, как сделать ключ разным, и у каждого есть пара заданий массива. Мой код следующий:
$hash = @{}
$content = Get-Content "C:\serversjobs.txt"
for ($i = 0; $i -lt $content.Count; $i++) {
$line = $content[$i]
if (($line -like '*:*') -and ($i + 1 -lt $content.Count)) {
$nextLine = $content[$i+1]
if ($nextLine -notlike '*:*') {
$Server = $line.Replace(":", "").Trim().ToString()
$hash.Server = @()
}
} elseif ($line -notlike '*:*') {
$hash.Server += $line
}
}
Write-Host $hash.Server
Всякий раз, когда это выводит, он просто выводит все задания. Я не уверен, куда идти отсюда. Я также смотрю в будущее на следующую строку, потому что некоторые серверы не имеют каких-либо заданий, поэтому их не следует включать. Оператор for в значительной степени говорит, что если в следующей строке также есть «:», то в этой текущей строке нет подключенных заданий, поэтому пропустите.