2015-04-06 2 views
1

Я использую azure powershell ISE. У меня очень длинный сценарий для запуска, где я использую переменные для хранения данных, а затем я использую их в своем коде. Проблема в том, что я не могу запустить этот скрипт за один проход, потому что выполнение не является строковым. Иногда он пытается выполнить команду до того, как переменной присвоено ее значение. Это вызывает ошибку.Azure Powershell ISE Выполнение запроса

Я хочу запустить 200 строк кода, имеющих 30 переменных за один раз, используя powershell ISE. Например. Проблема это-

Get-azurevm -servicename $a -vmname $b

становится выполняются до $ а = ххх $ B = ууу получаешь initialized.I настроят свои переменные перед использованием, но я предполагаю, что выполнение способ не построчно.

Что может быть возможным решением для этого?

Есть ли какой-либо вариант, я могу выполнить выполнение по строкам?

+0

Я не понимаю, что вы имеете в виду. Вы не можете установить контрольные точки в коде? –

+0

Я хочу запустить 200 строк кода с 30 переменными за один раз с использованием powershell ISE. Например. Проблема is-Get-azurevm -servicename $ a -vmname $ b запускается до того, как $ a = xxx $ b = yyy инициализируется. Я инициализировал свои переменные перед использованием, но я предполагаю, что стиль исполнения не является строковым. Надеюсь, теперь я понятен – Atf

+2

Если вы выполняете скрипт PowerShell, он выполняется сверху вниз (без разницы в ISE PowerShell, если вы используете Run Script, а не Run Selection), за исключением того, что вы используете что-то вроде goto, if/else, try/catch и т. д. Также убедитесь, что вы не объявляете переменные в блоках сценариев. Вне блоков сценариев переменная не существует. Трудно догадаться, в чем проблема, не видя сценарий. –

ответ

1

Azure PS исполнение всегда по строкам. Если что-то подобное происходит, вы можете разбить код на функцию, и вы можете выполнить свой желаемый код для выполнения, только если предыдущие коды уже выполнены. Всегда полезно работать с модулями, если у вас длинный код.

Также вы можете потребительных

start-sleep -s "no. of seconds to give other code to execute" 

для выполнения кода, который занимает немного больше времени.

+1

Я не знаю, почему это никогда не ударило меня в голову. Это действительно полезно, я полностью забыл о функциях в powershell – Atf

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