Переопределять свойства при включении сценария 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
        }
    }
Другие вопросы по тегам