开始块中的功能参数默认值

时间:2018-07-30 08:22:04

标签: powershell powershell-v2.0

我有以下代码:

Function test {
Param (
    [Parameter(Mandatory=$True, ValueFromPipeline=$True, ParameterSetName="p1", position=0)]
    [string]$sFile,
    [Parameter(Mandatory=$True, ValueFromPipeline=$True, ParameterSetName="p2", position=0)]
    [int]$iFile,
    [string]$Secret = "s3cr3t"
)
BEGIN {
    "[BEGIN]Secret=${Secret}"
}
PROCESS {
    "[PROCESS]Secret=${Secret}"
}
}

如果我执行:

"file.txt" | test

我得到:

  

[BEGIN]秘密=

     

[PROCESS] Secret = s3cr3t

我的问题是,为什么开始块中的秘密为空?

我正在尝试基于Secret在begin块中执行一些初始化操作,而这种行为正在阻止我。

请注意,当我在没有管道输入的情况下运行测试时,机密也会在BEGIN bock处初始化。最后,我的powershell版本是2。

0 个答案:

没有答案