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

  • ТанцеватьМного

person Piguy    schedule 14.10.2012    source источник
comment
не уверен, что это точно отвечает на ваш вопрос: github.com/psake/psake/wiki/   -  person Tim Abell    schedule 01.03.2017


Ответы (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
        }
    }
person manojlds    schedule 14.10.2012
comment
Ох, хорошо. Я понял, спасибо за разъяснение этого вопроса. Значит, нет способа добиться того, что мне нужно? Или я неправильно использую psake :) - person Piguy; 14.10.2012