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