Я пытаюсь выяснить, почему происходит следующее, если у вас есть
$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]будет выдавать правильное значение, но если я конкатенирую со строкой, он помещает пробел между строкой и значением.При размещении в строке я предполагаю, что он выгружает все содержимое, потому что он вычисляет массив $, а затем вычисляет $ i, заканчивая
". \ Filename1 filename2 [index number]"
Но еслиЯ назначаю отдельное значение отдельной переменной и соединяю его со строкой, где нет пробела?Почему это так:
Пример:
$name = $arr[$i]
write-host ".\$name"
output = ". \ Filename1"
, что правильно.