Powershell 使用IsNullOrEmpty时出现Null运行时异常

Powershell 使用IsNullOrEmpty时出现Null运行时异常,powershell,Powershell,我试图用字符串值或文件内容值初始化配置对象(如果字符串变量为null或空) 当此脚本自行执行时,它工作正常,但在执行多个PowerShell脚本后,它会大叫RuntimeException。以下是异常信息: You cannot call a method on a null-valued expression. + $env:PUBLISH_NOTE + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperatio

我试图用字符串值或文件内容值初始化配置对象(如果字符串变量为null或空)

当此脚本自行执行时,它工作正常,但在执行多个PowerShell脚本后,它会大叫RuntimeException。以下是异常信息:

You cannot call a method on a null-valued expression. + $env:PUBLISH_NOTE + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
请解释此运行时异常的根本原因。

您是否创建了这些环境变量?因为它们在默认情况下不存在。是的,我创建了它们,它在默认情况下肯定不存在。根据提供的脚本,如果$env:PUBLISH\u NOTE为null,则它将不会执行值赋值,也不会大叫异常。这是完整代码吗?我无法重现这个问题。运行您的逻辑很好。如果我简单地运行
$env:PUBLISH\u NOTE
我不会得到任何异常,并且我的系统上不存在该变量。它什么也不返回。我同意@Nick的说法。我不认为错误来自于这种代码的平静。此外,奇怪的是,瓷砖符号出现错误。它们通常具有与上一行完全相同的字符数,但在您的描述中并非如此。例如,您能否在ISE中运行它,以查看它在哪一行抛出错误?或者,添加断点以检查if块中的变量。@尼克当脚本自身运行时,该脚本不会发出任何运行时异常。它在执行多个PS脚本后抛出异常,并从提供的代码中抛出异常。 You cannot call a method on a null-valued expression. + $env:PUBLISH_NOTE + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull
elseif(![string]::IsNullOrEmpty($env:PUBLISH_NOTE))