#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 учитесь использовать объекты , потому что это действительно правильный путь.,