问题标签 [parameter-sets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PowerShell函数中的ParameterSetName检测与ValueFromPipeline输入对象类型匹配?
我在编写的自定义函数中看到了一些奇怪的行为,因此我编写了一些具有不同特征的快速测试函数来展示这些行为。当参数集足够相似以至于唯一的区别因素是通过管道接收的对象的类型时,就会出现问题。
首先,我创建了一个与字符串不同的简单类型。
接下来,我创建了一个测试函数并使用字符串和 TestType 输入运行它。
这是问题的核心。ParameterSetName 的计算结果是,__AllParameterSets
即使从值中可以看出,参数是按预期设置的。我的函数有很多参数集,并根据参数集进行大量切换以控制逻辑流程。
接下来,我尝试添加一个参数集唯一的参数,正如预期的那样,ParameterSetName 对于仅指定它的调用是正确的。
接下来,我尝试添加一个对两个参数集都是必需的参数,这次 ParameterSetName 评估为一个空字符串,这尤其令人困惑。
似乎 PowerShell 实际上知道如何正确设置这些参数,但 ParameterSetName 没有正确评估。有没有办法让这个工作?我想避免使用它们自己的参数集独有的不必要的开关,例如 -String 和 -TestType,这样 PowerShell 才能完成它的工作。谢谢!
powershell - 参数集 - 确保参数存在
我正在尝试使用参数集来复制此功能:
到目前为止我所拥有的简单示例:
这是行不通的。例如,我可以$hostName
不提供,或者不提供并且功能运行。$databasePassword
$dataBasename
$databasePassword
我错过了什么?
powershell - PowerShell 中的条件强制
我试图使一个参数成为强制性参数,但前提是另一个参数使用某些 ValidateSet 值。似乎在 Mandatory 上使用代码块并没有按预期工作。
powershell - PowerShell 参数集或动态参数
我试图找出哪种方法最适合以下情况。
示例函数:
如果(Test-Path -Path $PSScriptRoot\APICredentials.xml)
为真并且-AsVariable
已指定,则不需要/使用其他参数。
否则,如果(Test-Path -Path $PSScriptRoot\APICredentials.xml)
为 false,则需要之前声明为强制的所有内容。
有什么方法可以创建条件参数集吗?
如果前面陈述的逻辑是错误的,我应该只创建两个参数集并出错吗?或者我应该设置-AsVariable
为参数并使用动态参数处理其余部分?
因为在大多数情况下,一切都是强制性的,并且只有在特殊情况下才能单独-AsVariable
使用。我认为将其他所有内容配置为动态参数是错误的。
parameter-sets - 如何增加 TFS 中的参数集限制?
我们有大约 200 个参数集,如果我添加另一个参数集,最后一个参数集将从“所有参数集”列表中消失。我们如何增加 TFS 2018 中的最大参数集限制?
我指的是您在 TFS 中在 Test > Parameters 下创建的参数集。
//亲切的问候NB
powershell - 将 ParameterSet 值传递给其他 ParameterSet 会导致 AmbiguousParameterSet 异常
我正在尝试使用另一个带有参数集的 PowerShell 函数来调用具有参数集的 PowerShell 函数。在下面的代码中,我想Entry-Point
使用-ABC
or-DEF
开关来调用,而不是同时使用。但是,当我Entry-Point
使用任意数量的参数运行时,会出现AmbiguousParameterSet
以下异常。
如何将参数-ABC
和-DEF
- 无论是否指定每个参数 - 从函数Entry-Point
传递到函数My-Function
?
powershell - 多个参数集的问题
我需要为我正在创建的函数获取三个参数。参数一必须在所有参数集中。其他两个参数有多个排列。
我尝试使用参数集并搜索了其他线程,但似乎没有一个人在讨论这种情况。
我的问题是如何创建参数集,以便只有以下可能性。
这是我的功能。
这些是我从 Get-Help Test-ParametersNow 得到的结果
function - Powershell 函数可以处理多种输入类型吗?
我正在研究一个比较两个对象的函数,以便检测它们是否相同。但是我希望它也可以与字符串或整数等其他类型一起使用。
C++ 允许您声明具有相同名称的不同函数,以以不同方式处理具有不同输入类型的函数调用。我知道参数集的存在,但是据我所知,用户是必须指定他正在使用的参数集的人。
我正在尝试做这样的事情
如果我也可以将变量命名为相同的,则加分(因此$Item1Hash
,并在分配适当的类型时$Item1Int
成为两者)$Item1
powershell - Powershell,开关命名ParameterSets
原始问题 - 下面更新 - 标记答案中的最终代码
我希望或多或少是一个简单的问题,但我的大脑被炸了。我正在尝试编写一个模块来设置注册表项权限,名为“Set-RegistryPermissions”,并且在命名我的开关和创建可接受的参数集时遇到了一点问题。我想出了以下内容,但我到了最后一行并被难住了。
我越看越困惑。也许我可以结合 -Inherit 和 -SubkeyInherit 而不是 -Inherit -Recurse 或者重新开始并拥有类似 SetSuppliedKey、Recurse、Set... 啊哈我又困惑了。请问有什么建议吗?
- - 更新 - -
针对@Scepticalist 的评论,我想出了以下内容,这也允许我添加“-Permissions -Subkeys”。
我确实认为我可以将 '-Permissions -Recurse' 更改为 '-Permissions -All' 但这听起来更难理解,或者我可以将 '-Inherit -All' 更改为 '-Inherit -Recurse' 并废弃 -All 开关,但是这可能会使最后一个选项令人困惑,例如您尝试递归所有权限以及继承。
也许我只是想多了,或者试图在一个命令中做太多事情。如果命令运行两次,设置权限然后设置继承可能会更容易。
如果您发现任何问题或认为它太复杂,请告诉我您的想法。谢谢你。
这些将是唯一有效的组合,无效组合的示例是 -Permissions -Subkeys -Recurse 或 -Permissions -Subkeys -All
[编辑]
阅读它,我想我可能会将 'Subkeys' 更改为 'InheritSubkeys' 并废弃 'All' 开关,使最后 4 行变为读取,
powershell - 如何更改参数的抛出消息?
问题:希望更改显示的错误消息以说明他们需要将“-passed”、“-warning”或“-failed”包含在 cmdlet 参数中,或者不关心这三个参数是否丢失并编写消息(假设它那里)。
说明:创建了一个接受三个参数的函数:一条消息、第二条消息和消息状态(通过、失败、警告)。我收到“无法使用指定的命名参数解析参数”的默认错误消息。无论您是否通过以下方式传递消息,都会发生这种情况:
但是,如果您要输入“状态”参数,它将毫无问题地工作:
('Hello World' 应该是这里的绿色,但 Stack Overflow 还没有这个功能)
有问题的功能: