Есть другой способ. Вы можете использовать автоматическую переменную $PSDefaultParameterValues
, которая существует (начиная с версии 3), чтобы предоставить новые аргументы по умолчанию для командлетов и расширенных функций (не работает с обычными функциями). Однако это действительно работает для сценариев, даже при отладке в 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.
person
PatrickFranchise
schedule
22.09.2015