我想测试一下是否已为变量分配了变量,如果没有执行操作。如何实现?
我尝试使用以下代码进行操作,但收到错误:'-is'的正确操作数必须是类型。
此时尚未分配$ ProgramName。
If ($ProgramName -isnot $null) {
$ProgramName = $ProgramName + ', ' + $cncPrograms
}
Else {
If ($cncPrograms -isnot $null) {
$ProgramName = $cncPrograms
}
}
最佳答案
任何未分配的变量将具有null值,而不是数据类型为null。因此,只需执行以下操作:
If ($ProgramName -ne $null)
...如果分配给非空值,它将返回
TRUE
。一个更简单的检查是
IF($ProgramName)
尽管逻辑相反,它将检查是否为
$null
,因此您可以使用IF(!$ProgramName)
编辑:
鲁芬在评论中提出了严格模式的观点。此方法也将起作用:
Test-Path variable:ProgramName
或Test-Path variable:global:ProgramName
(例如,如果它是显式全局范围的)。这将返回$true
或$false
,具体取决于变量是否存在。关于variables - Powershell测试尚未分配的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9181473/