Вызов объектов массива в foreach l oop в Powershell - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь написать сценарий для автоматизации развертывания VDI, и у меня все работает, кроме правильной установки адресов MA C. Я не новичок в написании скриптов, но скажу, что это самый сложный.

Я пытаюсь создать array с адресами MA C, а затем запустить foreach. Но я не уверен, как заставить его использовать каждый объект в array, когда foreach зацикливается.

См. Фрагмент сценария ниже:

$array = @('00155d9df9b8','00155d9df921')

$i = 1

$vminstances = Read-Host -Prompt 'How many VMs?'

for ($i=1; $i -le $vminstances; $i++)

The foreach будет проходить по именам виртуальных машин и соответственно переименовывать. Но я не могу просто использовать адрес MA C с шагом 1 каждый l oop, так как они используют разные символы, а не только числа.

Как я могу включить каждый объект, хранящийся в array в каждом l oop?

Возможно, он никогда не был предназначен для такой работы, и, возможно, мне нужно переосмыслить это. Кто-нибудь может посоветовать?

Я был бы очень признателен за помощь.

1 Ответ

0 голосов
/ 06 августа 2020

Powershell упрощает работу с массивами, и вам не нужно использовать этот стиль для l oop. Просто используйте свой массив в foreach l oop, и тогда у вас есть переменная для работы, которая больше похожа на курсор, чем на чтение из массива с использованием индексов ...

$array = @('00155d9df9b8','00155d9df921')
foreach($mac in $array)
{
  Write-Output $mac
}
...