Переопределять свойства при включении сценария psake в другой сценарий psake
Я новичок в psake, и у меня есть эта проблема: у меня есть 2 сценария psake:
(1): base_tasks.ps1:
properties{
$a = "hello"
$b = "hi"
}
task One{
Write-Host $a
}
(2): install.ps1
Include .\base_tasks.ps1
properties{
$a = "Goodbye"
$b = "Adjeu"
}
task default -depends One
Теперь можно ли переопределить свойства и переменные из файла 1? Я хочу использовать файл 1 в качестве "базовых задач" и использовать эти задачи в файле install.ps1 и переопределить свойства. Или я должен сделать это по-другому? Я вызову install.ps1 и буду использовать мои $a и $b из install.ps1.
- DanceAlot
1 ответ
Решение
Из источника похоже Properties
это просто функция:
function Properties {
[CmdletBinding()]
param(
[Parameter(Position=0,Mandatory=1)][scriptblock]$properties
)
$psake.context.Peek().properties += $properties
}
Поэтому, когда вы вызовете его снова, он просто снова добавит свойства.
Затем свойства преобразуются в переменные следующим образом:
foreach ($key in $properties.keys) {
if (test-path "variable:\$key") {
set-item -path "variable:\$key" -value $properties.$key | out-null
}
}