我在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提示符传递参数。
答案 0 :(得分:0)
我会继续发布我发现的内容。我希望有一个快速回答,但我的谷歌搜索技能尚未找到。
看起来这就是powershell使用字符串的方式。
Why does passing $null to a parameter with AllowNull() result in an error?
所以我正在更改我的Cmdlet以观察空字符串和空值。