我是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并使用install.ps1中的$ a和$ b。
答案 0 :(得分:0)
从source开始,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
}
}