Как передать необходимые параметры скрипту в Powershell ISE?
Посмотреть Название.
Я указал необходимые параметры в голове скрипта:
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
когда я хочу отладить скрипт с помощью Powershell ISE: как я могу заполнить эти параметры?
4 ответов:
панель команд. Откройте файл сценария в Редакторе ISE, установите точки останова (F9). Затем в области команд введите команду, вызывающую этот скрипт с требуемыми параметрами. Я не думаю, что есть другой (встроенный) способ сделать это в Исэ.
- откройте скрипт (myscript. ps1) в Windows Powershell ISE
- пресс F9 в переменной, которую вы хотите проверить (отладка). Например, 2-я строка в примере ниже, где переменной $outputText присваивается
- в окне оболочки укажите относительный путь скрипта вместе со значением param. Например:. \myscript. ps1 "my value"
- нажмите enter (вам не нужно нажимать F5)
- вы сможете чтобы увидеть точки останова отладки, выделенные желтым цветом. Наведите курсор на нужную переменную, чтобы проверить текущее значение.
есть и другой способ. Вы можете использовать
$PSDefaultParameterValuesавтоматическая переменная, которая существует (начиная с v3) для предоставления новых аргументов по умолчанию командлетам и advanced функции (не работает с нормальными функциями). Однако он работает для сценариев, даже при отладке в ISE. Вы должны объявить[CmdletBinding()]или[Parameter()]как вы бы для расширенных функций.так что для вашего примера,
[CmdletBinding()] param ($G_ARCHIVE = $(throw "Need file to upload!"), $G_LOGFILE = $(throw "Need logfile!"))вы бы выполнили что-то вроде этого на ISE Подсказка:
$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt") $PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")вы также можете установить значение параметра в блок скрипта, который будет автоматически выполняться во время выполнения:
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={ "Example-{0:yyMMddHHmm}.log" -f [datetime]::Now }переменная является хэш-таблицей и применяется весь стандартный синтаксис, кроме ключ должно быть имя сценария (или расширенной функции или командлета), за которым следует двоеточие, а затем имя параметра. Вы можете установить значения по умолчанию для нескольких сценариев или команд, а также несколько параметров для каждого (каждый параметр-это новая таблица вступление.)
делая это таким образом, вы можете просто нажать F5 чтобы запустить скрипт как обычно. Параметры будут взяты из переменной, поэтому вам не нужно ничего вводить.
другие варианты использования для
$PSDefaultParameterValuesмогут быть настройки, например, у Get-History есть только последние 10 записей, Если вы не укажете-Countпараметр в команде. Поскольку записи сохраняются только для текущего сеанса, вы хотите добавить настройки в свой профиль. Вы можете прочитать больше, набравGet-Help about_Parameters_Default_Valuesв командной строке или просмотреть ту же информацию о TechNet.
существует гораздо более простой способ установить необходимые параметры в ISE:
перед нажатием F5 в ISE установите необходимый параметр. Я обычно комментирую параметр, который мне нужен, например: # $G_ARCHIVE = "C:\Temp\TestFile_001.txt"
Я выбираю все после " # " и нажимаю F8. В следующий раз я отлаживаю скрипт с помощью F5, параметр установлен на значение, которое я тестирую, нет необходимости передавать параметры через команду линия.

Comments