2013-03-07 3 views
1

Я пытаюсь создать массив в PowerShell, а затем присоединить его к одной строке. Это мой код:Join separator ignored

$solutionRoot = "c:\temp" 
$libraryPaths = @(
    $solutionRoot + "\a", 
    $solutionRoot + "\b" 
) 

$joined = ($libraryPaths -join ",") 
$joined 

$joined2 = [string]::Join(",", $libraryPaths) 
$joined2 

Однако выход:

c:\temp\a c:\temp\b 
c:\temp\a c:\temp\b 

и нет разделителя между моими путями (требуемый выходом c:\temp\a,c:\temp\b).

Что я делаю неправильно?

ответ

3

На самом деле вы не получаете массив в $libraryPaths. Попробуйте это:

$solutionRoot = "c:\temp" 
$libraryPaths = @(
    ($solutionRoot + "\a"), 
    ($solutionRoot + "\b") 
) 

$joined = ($libraryPaths -join ",") 
$joined 

$joined2 = [string]::Join(",", $libraryPaths) 
$joined2 
+1

Спасибо, я не понял, оператор запятая имеет такой высокий приоритет оператора. Если бы вы могли добавить это объяснение к своему ответу, это сделало бы его еще лучше. – Borek

3

или просто:

$libraryPaths = @(
    "$solutionRoot\a", 
    "$solutionRoot\b" 
)