Как я могу прочитать разделенный точкой с запятой текст из файла и сохранить его в переменных

#powershell

#powershell

Вопрос:

Я хочу, чтобы строки, разделенные точкой с запятой,выводились из файла при записи в var1, var2.. как в цикле foreach:

 foreach ($var1,$var2 in Get-Content ".list.txt") { # further processing $var1,$var2 }  

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

1. Import-Csv

2. Почему бы не использовать «Импорт-CSV» и вместо этого не работать с объектом? Для определения разделителя используйте параметр «-Разделитель».

Ответ №1:

Похоже, что вы не можете назначить несколько переменных в качестве итератора. Но вы можете взять каждую строку и просто разделить ее на переменные внутри цикла.

 $tempfile = New-TemporaryFile  @' Value1a;Value2b Value2a;Value2b '@ | Set-Content -Path $tempfile  foreach($line in Get-Content $tempfile){  $var1,$var2 = $line -split ';'  Write-Host First var: $var1 Second var $var2 }  

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

1. благодаря разделению в этом цикле выполняется работа. foreach($line in Get-Content ".list.txt"){ $user,$pass = $line -split ';' New-LocalUser $user -Password (ConvertTo-SecureString $pass -AsPlainText -Force) }

Ответ №2:

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

 $csvContent = Import-Csv -Path "list.txt" -Delimiter ";"  

После этого вы можете работать с переменной $csvContent для доступа к содержимому .

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

1. Это означает, что все содержимое находится в одной переменной, но каждая строка всегда должна быть word1;word2 в переменных $var1,$var2

2. @DonMatteo учитесь использовать объекты , потому что это действительно правильный путь.,