2016-11-24 2 views
1

Итак, я пытаюсь использовать простой скрипт в качестве шаблона для настройки нескольких серверов с небольшим циклом foreach, но то, что я видел в других примерах, просто не работает для меня, и речь идет об использовании уже существующих переменных.Временное использование существующих системных переменных?

Чтобы быть более конкретным, вот что я пытаюсь запустить:

[xml]$windows=(Get-Content P:\script\windows.xml) 
foreach ($host in $windows.servers.host) { 
$host.name 
$host.user 
} 

Это не работает из-за $host переменной уже существующих и в то время как я думал, просто изменяя XML, я заметил, что трудно никогда не использовать какие-либо теги в XML-что уже не имеет переменную, которая имеет смысл как hostnamehostcomputernameuser и т.д.

Могу ли я просто делаю что-то не так или, как можно идти вокруг этого вопроса?

+1

'$ Host' является автоматическим переменным, используйте другое имя –

+0

Ну, вот и вся точка сообщения, как другие люди успешно используют $ host? Существует так много предопределенных переменных, поэтому создание согласованного xml без использования одного из них затруднено. –

+0

@PatrikPersson Вам нужно указать about_automatic_variables. Также Get-Variable покажет вам все, что уже существует, поэтому вы можете проверить это, пока вы не знакомы с ними. Меня это не беспокоит. Его просто имя переменной ... измените его на что-то еще, как '$ singleHost' – Matt

ответ

0

Я понятия не имею, почему вы получаете конфликты имени переменного, но вы можете также трубы узлов к Foreach-Object командлету и использовать переменную автоматического конвейера$_:

$windows.servers.host | ForEach-Object { 
    $_.name 
    $_.user 
} 
+0

Интересное обходное решение, но оно работает! Никогда не видел, чтобы это использовалось в качестве альтернативного примера, но теперь у нас есть идеальный сценарий для описания различий в 'foreach' и' ForEach-Object'! –

+0

foreach-объект выполняет итерацию по каждому объекту * конвейера, тогда как foreach-loop выполняет итерацию по списку. –

Смежные вопросы