我有以下代码:
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。