有没有办法在PowerShell函数中创建一个参数,你必须调用它才能考虑它?
由命令行开关给出的示例(粗体是我想要做的):
Invoke-Command -computername Server01 -Scriptblock {…}
这是我想要对该功能做什么的一个例子
Function DoStuff($computername,-arg2,-domain $domain)
Test-parameter(-domain) if (-domain -eq $true) {
use $domain
}
Else {
$domain = "Domain1"
}
test-parameter($arg2) {
if ($arg2 -eq $true) {
Do something
}
else {
Do the opposite
}
}
总结如下:
如果存在“-arg2”,我希望在脚本中发生一些事情.如果“-Domain”存在并且有一个参数,我希望使用它而不是set参数.
Powershell为常见的参数场景提供了大量内置支持,包括强制参数,可选参数,“switch”(aka flag)参数和“参数集”.
默认情况下,所有参数都是可选的.最基本的方法是简单地检查每个$null,然后从那里实现你想要的任何逻辑.这基本上就是您在示例代码中显示的内容.
如果您想了解Powershell可以为您提供的所有特殊支持,请查看以下链接:
about_Functions
about_Functions_Advanced
about_Functions_Advanced_Parameters