powershell - 无法将参数绑定到参数,因为它是一个空字符串
问题描述
从我创建并导入到主脚本中的模块调用函数时出现此错误:
Run-RemoteScript : Cannot bind argument to parameter 'Targets' because it
is an empty string.
At C:\Scripts\Script.ps1:114 char:39
+ Run-RemoteScript -Targets $targets -RunMethod $runMethod ...
+ ~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Run-RemoteScript],
ParameterBindingValidationException
+ FullyQualifiedErrorId :
ParameterArgumentValidationErrorEmptyStringNotAllowed,Run-RemoteScript`
在我的模块中,-Target
定义为这样的参数:
[Parameter(Mandatory, Position = 0)][String[]]$Targets,
在我的主脚本(导入我的模块)中,$targets
定义如下:
$Targets = Set-TargetList
我曾尝试使用global
脚本范围,但这不起作用。
解决方案
可能是一个迟到的答案,但以防其他人有类似的问题。
就我而言,它是一个字符串数组。当至少一个成员字符串为空或 null 时,它被拒绝。
在您调用的参数中设置AllowEmptyString
为属性,或者在传递成员之前检查成员是否不是空字符串。
推荐阅读
- sql - 将架构的所有空值替换为 0
- raspberry-pi3 - 如何在 Rapberry PI 中通过 DHCP 服务器列出分配/租用的 IP 地址?
- sql - SQL,如何对具有优先约束的查询结果进行排序
- c++ - 将 boost.python 代码更新为没有 numeric.hpp 的新 API
- r - 每年循环命名
- git - Git无法切换分支,除了master
- android - firebase onDataChange 可以提供空参数吗?
- c# - 元素的分组和排序
- html - 使用打字稿和Angular 2在输入中隐藏“零”值
- websocket - 测量 websocket 传输率