微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

收集未定义参数PowerShell

如何解决收集未定义参数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 举报,一经查实,本站将立刻删除。