我一直试图找出从函数调用函数的最佳方法,并且对两个函数都强制执行参数。到目前为止,我已经得到了以下内容,因为我知道cmdline参数指定了什么,所以工作正常。
我确实找到this post,但我不确定如何使用调用函数的函数。
编辑添加了更短的代码。在代码中,如何为父函数[string]$killserver
和子函数main
强制使用ParamSet参数KillSwitch
,以便在运行函数时main -nukejobs
Powershell提示对于变量$killserver
编辑2:计算了强制参数serverlist
和datelist
的提示,但现在看来子函数没有写入主机"receive input from $serverlist and $datelist"
编辑3:更正了Switch ($PSCmdlet.ParameterSetName){
的{{1}}值,现在看起来不错了。
RunMulti
答案 0 :(得分:0)
我发现必须分开强制参数:
[Parameter(Mandatory=$true,ParameterSetName="RunOnce")]
阻止。
例如,即使Mandatory=$true
我的猜测是因为它仅适用于[switch]
[Parameter(Mandatory=$false,ParameterSetName="RunOnce",
HelpMessage="Enter ServerName to schedule reboot for.")]
[switch]$RunOnce,
[string]$server,
[string]$date,
但这会有效,导致Powershell在$server
切换时提示$date
和RunOnce
。
[Parameter(Mandatory=$false,ParameterSetName="RunOnce",
HelpMessage="Enter ServerName to schedule reboot for.")]
[switch]$RunOnce,
[Parameter(Mandatory=$true,ParameterSetName="RunOnce")]
[string]$server,
[Parameter(Mandatory=$true,ParameterSetName="RunOnce")]
[string]$date,