如何解决收集未定义参数PowerShell
我希望能够接受许多我不想定义的paramas。我生成了一个在测试中可以很好地显示“ Hello World”的函数,但实际上在实践中并不能按预期工作。我正在尝试将其与Microsoft Word COM Object
结合使用并收到以下错误:
Exception setting "Open": Cannot convert the "TRUE" value of type "string" to type "Object".
Param(
[Parameter(Mandatory=$false,ValueFromremainingArguments=$true)]
$UndefinedArgs
)
IF ($UndefinedArgs) {
$UndefinedArgs | ForEach-Object {
IF ($_ -like '-*') {
$ObjName = $_ -replace '^-'
} ELSE {
Set-Variable -Name "$ObjName" -Value "$_"
$UndefinedArgsArr = @()
$UndefinedArgsArr + @([pscustomobject]@{VarName="$ObjName";VarVal="$_"})
}
}
}
$UndefinedArgsArr
Write-Host $READONLY
某种程度上,问题是我无法通过$FALSE
,因为如果我对$READONLY = $FALSE
进行编码,那么我可以通过,但是如果我对-READONLY $FALSE
进行编码,则无论是否有$
以上错误。我遗漏了给我带来麻烦的声明,因为我认为上述功能需要调整,而不是该声明,但是我可以根据需要添加它。
解决方法
通过这样定义参数,我能够克服错误。
IF (!$READONLY){$READONLY = $TRUE}ELSE{$READONLY = [bool]$READONLY}
问题是我必须将变量设置为[bool]
。我还删除了$_
周围的引号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。