Запрос выполнения Azure Powershell ISE

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

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

Get-azurevm -servicename $a -vmname $b

выполняется до инициализации $ a = xxx $ b = yyy. Я инициализировал свои переменные перед использованием, но я предполагаю, что способ выполнения не является построчным.

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

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


person Aatif Akhter    schedule 06.04.2015    source источник
comment
Я не понимаю о чем ты. Разве вы не можете установить точки останова в коде?   -  person Maria Ines Parnisari    schedule 07.04.2015
comment
Я хочу запустить 200 строк кода с 30 переменными за один раз, используя PowerShell ISE. Например. Проблема в том, что Get-azurevm -servicename $ a -vmname $ b выполняется до инициализации $ a = xxx $ b = yyy. Я инициализировал свои переменные перед использованием, но я предполагаю, что способ выполнения не построчно. Надеюсь, теперь мне ясно   -  person Aatif Akhter    schedule 07.04.2015
comment
Если вы выполняете сценарий PowerShell, он выполняется сверху вниз (нет разницы в PowerShell ISE, если вы используете сценарий запуска, а не запуск выбора), за исключением того, что вы используете что-то вроде goto, if / else, try / catch и т. Д. Также проверьте что вы не объявляете переменные в блоках скрипта. Вне блоков скрипта переменная не существовала бы. Трудно догадаться, в чем проблема, не видя сценария.   -  person Peter Kirchner    schedule 07.04.2015


Ответы (1)


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

Также вы можете использовать-

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

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

person meghna    schedule 27.04.2015
comment
Не знаю, почему это никогда не приходило мне в голову. Это действительно полезно, я полностью забыл о функциях в PowerShell. - person Aatif Akhter; 27.04.2015