Ссылка на индекс массива Powershell дает неожиданные результаты при ссылке на строку

Я пытаюсь выяснить, почему происходит следующее, если у вас есть

$arr = @("Filename1", "Filename2")
for($i =0; $i -le $arr.Length -1; $i++) {

   write-host ".\"$arr[$i]
   write-host ".\$arr[$i]"
   write-host $arr[$i] 
}

Итак, если взять только один цикл, то получается:

".\ Filename1"
".\ Filename1 Filename2[0]"
"Filename1"

Просто обращение к массиву[index] дает правильное значение, но если я конкатенирую со строкой, то между строкой и значением ставится пробел. Когда значение помещается в строку, я предполагаю, что оно сбрасывает все содержимое, потому что оно оценивает $array, затем оценивает $i и в итоге получается

".\ filename1 filename2[номер индекса]"

Но если я присваиваю отдельное значение отдельной переменной и объединяю его со строкой, то пробела нет? Почему так:

Пример:

 $name = $arr[$i]
 write-host ".\$name"

output = ".\filename1"

что правильно.

7
задан pghtech 21 December 2011 в 15:59
поделиться