我已经编写了一个脚本,调用New-Service cmdlet创建一个Windows服务:
如果我完全省略“-Description”参数,命令将不会报错:
我可以通过以下方法解决这个问题:
然而,这种方法似乎冗长而且笨拙。在调用cmdlet时,是否有一种告诉Powershell忽略空值参数的方法呢?类似于以下代码:
New-Service -Name $Name -BinaryPathName $ExecutablePath `
-Credential $Credential -DisplayName $DisplayName `
-Description $Description -StartupType $StartupType
我有一个关于描述的问题。如果$Description是空字符串或$null,我会收到错误消息:
Cannot validate argument on parameter 'Description'.
The argument is null or empty. Provide an argument that is not null or empty,
and then try the command again.
如果我完全省略“-Description”参数,命令将不会报错:
New-Service -Name $Name -BinaryPathName $ExecutablePath `
-Credential $Credential -DisplayName $DisplayName `
-StartupType $StartupType
我可以通过以下方法解决这个问题:
if ($Description)
{
New-Service -Name $Name -BinaryPathName $ExecutablePath `
-Credential $Credential -DisplayName $DisplayName `
-Description $Description -StartupType $StartupType
}
else
{
New-Service -Name $Name -BinaryPathName $ExecutablePath `
-Credential $Credential -DisplayName $DisplayName `
-StartupType $StartupType
}
然而,这种方法似乎冗长而且笨拙。在调用cmdlet时,是否有一种告诉Powershell忽略空值参数的方法呢?类似于以下代码:
New-Service -Name $Name -BinaryPathName $ExecutablePath `
-Credential $Credential -DisplayName $DisplayName `
-Description [IgnoreIfNullOrEmpty]$Description -StartupType $StartupType