2013-12-12 1 views
0

Я всегда мог найти то, что искал при переполнении стека, с помощью функции поиска. Однако на этот раз я немного застрял, и хотя я вырвусь и спрошу сообщество.Запись двух массивов в одну строку в файл, Powershell

Я пытаюсь записать в файл с данными из двух массивов, например:

$arrayString = @(“User1″, “User2″, “User3″) 
$arrayInteger = @(1, 2, 3) 

линии, что я не уверен, есть линия, чтобы написать это в файл я попытался следующим :

Add-Content $filePath$ ($arrayString[0] $arrayinteger[0]) 

Когда я делаю это я получаю ошибку «Неожиданный маркер„arrayinteger“в выражении или инструкции

Я также попытался:

Add-Content $filePath$ ($arrayString[0] + $arrayinteger[0]) 

На что я получаю сообщение об ошибке «Ошибка вызова метода, потому что [System.IO.DirectoryInfo] не содержит метода с именем« op_Addition ».« Мое понимание этого - это попытка «Добавить» строку и целое число, вызывающее ошибку.

Однако, если я пытаюсь написать строку в консоли это работает:

выход
write-host $arrayString[0] $arrayinteger[0] 

Цель Я пытаюсь получить это

User1 1 
User2 2 
User3 3 

Спасибо за вашу помощь.

ответ

1

Вот несколько различных способов решения этой проблемы:

$arrayString = @("User1","User2","User3") 
$arrayInteger = @(1, 2, 3) 

Использование подвыражения в расширяемой строки:

$(for ($i=0; $i -le 2;$i++) 
{ 
    "$($arrayString[$i]) $($arrayInteger[$i])" 
})| set-content $filepath 

Используя формат строки:

$(for ($i=0; $i -le 2;$i++) 
{ 
    '{0} {1}' -f $arrayString[$i],$arrayInteger[$i] 
}) | set-content $filepath 
+0

Отлично! Спасибо! Я закончил использование метода подвыражения, и это сработало сперва. Отмечено как ответ – user3093729