如何在运行脚本时未提供字符串参数为null

时间:2017-03-21 18:46:48

标签: powershell

我在C#中编写cmdlet并且我有可为空的int(int?),我在PowerShell脚本中使用[System.Nullable [System.Int32]]处理了这些内容。

然而,现在,我有一些不需要的参数字符串,如果在调用脚本而不是空字符串时未提供它们,我需要它们传递null。是否有类似于[System.Nullable [System.Int32]]的东西我可以使用?

(C#)

[Cmdlet("Update","Name")]
public class UpdateName : Cmdlet
{
    public UpdateName()
    {
    }
    [Parameter(HelpMessage = "The Name")]
    public string Name { get; set; }

    [Parameter(HelpMessage = "The Number")]
    public int? Number { get; set; }

    proctected override void ProcessRecord()
    {
        // do stuff here
    }
}

(Powershell的)

[CmdletBinding()]
param
( [string]$Name,
[System.Nullable[System.Int32]]$Number
)

Update-Name -Name $Name -Number $Number

然后我调用我的脚本testscript.ps1并运行它,没有从我的powershell提示符传递参数。

1 个答案:

答案 0 :(得分:0)

我会继续发布我发现的内容。我希望有一个快速回答,但我的谷歌搜索技能尚未找到。

看起来这就是powershell使用字符串的方式。

Why does passing $null to a parameter with AllowNull() result in an error?

所以我正在更改我的Cmdlet以观察空字符串和空值。