问题标签 [validateset]

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.

0 投票
3 回答
6446 浏览

powershell - 布尔参数上的 PowerShell ValidateSet

我正在尝试将 ValidateSet 与布尔参数一起使用,但是我无法使其按预期运行。

复制问题的示例:

在运行时,PowerShell在选项卡完成时将$true和变量分别扩展为 和,但这会导致参数验证失败,因为只有、和是有效的布尔类型。$falseTrueFalse$true$false10

我尝试将 ValidateSet 更改为[ValidateSet('$false','$true')]并且选项卡完成按预期工作,但是参数验证仍然失败,因为参数需要字符串'$false''$true'.

我可以将 ValidateSet 更改为并使其按预期运行,[ValidateSet([bool]0,[bool]1)]但我发现在完成布尔参数时0用户1体验较差。$true$false

函数的预期输出应该是True什么时候$true被选中,False什么时候$false被选中。

我已经在我的代码中实现了一个解决方法,但我想知道如何使用带有布尔参数的 ValidateSet(如果可能的话)来为用户启用制表符补全功能。

0 投票
1 回答
579 浏览

powershell - PowerShell 中的条件强制

我试图使一个参数成为强制性参数,但前提是另一个参数使用某些 ValidateSet 值。似乎在 Mandatory 上使用代码块并没有按预期工作。

0 投票
1 回答
1622 浏览

powershell - Powershell [ValidateSet()] 在使用相同参数名称的单独参数集之间

好的,所以我正在尝试编写一个使用两个不同参数集名称的高级函数,一个DefaultTestAccountsOnly.

其中大部分工作正常,但是,这是我的问题:

的输出Get-Help New-SecondaryAccount在该部分中给了我这个SYNTAX

从外观上看,这正是我想要的——一个参数集,我可以在其中验证少数不同的列表,-AccountTypes然后在我有密码、描述等的地方移动,而另一个我只验证一个值AccountType并且有一个CoreOrReserve只属于TestAccountsOnly参数集的参数。

不幸的是,当我尝试在 ISE 中对此进行测试时,如果我键入:

New-SecondaryAccount -Name mehSomeAccount -AccountType,我从 IntelliSense 得到的唯一建议是Test

你不能使用[ValidateSet()]我想要的方式,还是我做错了?

如果有人能指出这一点,将不胜感激!

0 投票
1 回答
348 浏览

powershell - 使用验证集参数后动态参数不显示

我一直在 Company-AD 模块中使用新的 New-CompanyADUser cmdlet,但我的动态参数遇到了一个奇怪的问题:在我选择了经过验证的选项后,它根本不会出现设置有多个单词的参数。 

例如,如果我写:

然后我可以继续使用“组”参数,它会自动从 AD 中提取信息,例如:

但是,如果我为“Floor”选择另一个包含多个单词的选项,则无法调用它,例如:

现在,如果我只按不带组参数的 Enter 键,它会说:

但是随后动态参数的制表符完成不起作用。以前有没有其他人遇到过这个问题? 

我的代码如下(注意,它从有问题的区域开始;如果它有助于诊断问题,我可以发布完整的内容):

0 投票
0 回答
117 浏览

powershell - 获取参数的选定值以为 Powershell 中的下一个参数提供值

我正在编写一个函数,我打算在其中提供动态参数自动完成。想法是这样的;

当我输入

Activate -User <USERNAME>(按班级-User自动完成)GetUsers

我想在类的方法中使用参数<USERNAME>选择,这样我就可以动态地确定我应该在哪个用户目录中搜索配置文件,因为每个用户都有不同的配置文件路径。-UserGetValidValuesGetProfiles

我还没有找到一种机制,可以让我获得任何参数的任何选定值。我正在使用 PS6,我想知道是否有办法做到这一点。这是我的最小代码。

谢谢!

0 投票
2 回答
2035 浏览

arrays - 如何从数组中提取 Powershell validatescript 参数?

我有一个具有很多高级功能的模块。我需要使用一长串 ValidateSet 参数。我想将整个可能参数列表放入一个数组中,然后在函数本身中使用该数组。如何从数组中提取整个集合的列表?

问题是当我使用该函数时,它不会从常量中提取内容。

如果我指定常量的索引值,那么它就可以工作。

它返回苹果。

0 投票
1 回答
147 浏览

powershell - Powershell - 将 Validateset 参数传递到 ForEach-Object 时遇到问题,提示

所以我是 PowerShell 的新手,我正在尝试让这个功能正常工作。我有 2 个带有 3 个参数的 ValidateSet 数组。这些参数应该更改文件路径并将它们从一台服务器复制到另一台服务器。出于某种原因,我不断收到参数的命令提示符,而不是通过它们。我猜这是 ForEach-Object 的问题,但我不知所措。但是,它适用于 $ArchivePath。我是新人,所以请温柔点... TIA

输出:

0 投票
2 回答
141 浏览

powershell - PowerShell - 有没有办法创建一种包含验证集多个参数的“别名”?

下午好,

我最近创建了一个 PowerShell 脚本来自动化和测试 PowerCLI 脚本,然后再在 vCenter/ESXi 主机上运行它们。

目前,我使用验证集让用户选择他们想要在哪个服务器/集群上执行他们的脚本:

问题是,有时当您有大客户时,他们可能有多个集群,只需键入“customer1”并让脚本在 cluster1/2 和 4 上运行会更方便,而不是手动键入所有集群:

我已经尝试使用 if 来检查变量 $cluster 的值,如果它等于“Customer1”,那么它将用适当的集群替换他的值,但我觉得这个解决方案并不优雅。而且很难配置/维护,因为用户需要修改代码,所以如果这些参数可以从外部配置文件/用户输入创建就更好了。

我还想知道是否可以从文件/csv 中检索 validateset 的参数,以避免用户自定义主 script.ps1,而是简单地将他们的服务器和集群替换/写入填充 validateset 参数的 .CSV .

希望清楚..

问候,亚历山德罗

0 投票
4 回答
614 浏览

powershell - 无法在 Validateset 中使用预定义的数组 - Powershell

我正在寻找一种方法来制作一个接收参数的 cmdlet,在键入时,它会提示从预定义的选项数组中完成建议。

我正在尝试这样的事情:

预期的结果应该是:
在编写“Test-ArgumentCompleter F”时,单击 tub 按钮后,F 自动完成为 Fruit。

0 投票
1 回答
32 浏览

powershell - 参数验证

我试图验证一个名为“收集”的参数只接受 3 个参数(基本、中等和完整),但是当我为“收集”参数分配一个“有效”值时,它得到一个“假”返回。

这就是我所做的:

运行测试:

c:\script.ps1 -收集基本

PD:-我知道我可以使用 validateset,但这对我不起作用。-我认为问题出在嵌套的 $collect -ne ('basic' -or 'medium' -or 'full')中,但我该如何解决呢?