我想测试一下是否已为变量分配了变量,如果没有执行操作。如何实现?

我尝试使用以下代码进行操作,但收到错误:'-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:ProgramNameTest-Path variable:global:ProgramName(例如,如果它是显式全局范围的)。这将返回$true$false,具体取决于变量是否存在。

关于variables - Powershell测试尚未分配的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9181473/

10-11 15:18