【问题标题】:Powershell Allow Parameter only if the object the function is called on has a particular property仅当调用函数的对象具有特定属性时,Powershell才允许参数
【发布时间】:2014-06-18 01:57:48
【问题描述】:

我想知道当正在使用的对象具有特定属性时,是否可以为隐藏自身的函数指定一个参数

例如,如果我们有

Function Do-Something
{
 Param(
  [HideIfObjectHasPropertyNamed("NoPath")]
  [string] $Path
 )    
 ...
}

如果我有两个对象 Test1 和 Test2

Test1 具有 NoPath 作为属性 Test2 没有

所以当我写出来的时候

Test1 | Do-Something -

在破折号之后,我希望 Path 从可能的参数的智能感知列表中完全丢失

但是有了这个

Test2 | Do-Something -Path

我希望 Path 是一个可用的选项

显然我知道 HideIfObjectHasPropertyNamed 不是一个有效的参数属性我想知道是否有办法使用现有的参数属性来完成同样的事情。

我仍在学习 Powershell 的来龙去脉,参数的所有细微差别都不为我所知。如果这是不可能的,那很好,它只会让 cmdlet 更友好一点,以便传递给其他用户。

【问题讨论】:

    标签: powershell parameters


    【解决方案1】:

    我认为您可以使用动态参数使其工作。

    试试get-help about_functions_advanced_parameters。动态参数将在最后介绍,并且有一些有用的示例。

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2016-12-17
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2020-12-17
      • 1970-01-01
      相关资源
      最近更新 更多