收集未定义的参数 PowerShell

Collect Undefined Parameters PowerShell

我希望能够接受许多我不想定义的参数。我生成了一个函数,该函数在测试中运行良好以显示“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]。我还删除了 $_.

周围的引号